Почему я не могу заставить работать live () или load () jQuery? - PullRequest
1 голос
/ 22 апреля 2010

Почему работает только третий метод?

$('#jqtest').live('load', function() {$(this).html('hi');}); //1

$('#jqtest').load(function() {$(this).html('hi');}); //2

$(window).load(function() {$('#jqtest').html('hi');}); //3


 <div id="jqtest">kldjfglkj</div>

Ответы [ 2 ]

3 голосов
/ 22 апреля 2010

Вы не можете использовать функцию load() для произвольных селекторов; Вы можете использовать его только для «любого элемента, связанного с URL: изображения, сценарии, фреймы, фреймы и объект окна» ( docs ). div s не имеют ассоциированного URL, поэтому ни один из ваших первых двух методов не будет связывать обработчик. У window есть URL, поэтому он вызовет обработчик.

Вас также может заинтересовать ready () .

0 голосов
/ 22 апреля 2010

Если вы пытаетесь добавить HTML "hi" к элементу "#jqtest", когда документ или окно загружены, вы почти у цели.

$(document).ready(function(){

$("#jqtest").html('hi');

});

Это изменит значение «#jqtest», когда документ будет загружен. Вы также можете указать другие события в функции ready (), которые будут выполняться только после полной загрузки страницы.

...