Почему эта «простая» функция `load` не" работает "? - PullRequest
0 голосов
/ 29 января 2012

образец:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
 <script type="text/javascript">
  $(function(){
    $('#test').load(function(){
     alert(1);
    });
  });
 </script>
  <TITLE> test load </TITLE>
</head>
<body>
<div id="test">
 TEST
</div>
</BODY>

Ответы [ 2 ]

4 голосов
/ 29 января 2012
$(window).load(function () { ... });

События загрузки запускаются только для элементов, с которыми связан URL-адрес, например изображений.Однако вы можете выполнить привязку к событию загрузки window, которое срабатывает, когда загружены все элементы на странице.

В качестве альтернативы вы можете привязаться к обработчику события document.ready, который срабатывает, когда DOM готов для манипулирования,В jQuery мы делаем это следующим образом:

$(function () {
   //run code here
});

Обновление

Если вы добавляете элементы в DOM, поработайте над ними перед тем, как сделать это:

$('#button').on('click', function () {
    $('body').append($('<div />').addClass('some-class').text('Some Text').on('click', function () { alert('Ouch! You poked me.'); }));
});

Обратите вниманиеЯ запустил некоторые функции jQuery для элемента, созданного с помощью jQuery, прежде чем добавить его в DOM.

0 голосов
/ 29 января 2012

.load по сути используется как функция ajax. Вы пытаетесь использовать его как событие загрузки DOM.

...