Может ли jQuery .load -ed ID отвечать на событие клика? - PullRequest
2 голосов
/ 01 декабря 2011

Используя jQuery, я поместил текст $('content').load в класс на моей веб-странице.Содержимое содержит новый идентификатор, который я хотел бы ответить на событие клика.Это возможно?Вот сценарий ...

$(document).ready(function(){
       $("ul.nav li:eq(3)").click(function(){
         $('.content').load('gpstart.html #product').fadeIn('slow');
       });
 });

Ответы [ 4 ]

1 голос
/ 01 декабря 2011

Да, используя jQuery.on () .

$(document).ready(function(){
    $(document).on('click', '#some_id', function() {
        // do something
    });

   $("ul.nav li:eq(3)").click(function(){
     $('.content').load('gpstart.html #product').fadeIn('slow');
   });
 });
1 голос
/ 01 декабря 2011

Вы можете использовать live или delegate методы для привязки к событию click для элементов, которые будут созданы (загружены) в будущем.

0 голосов
/ 01 декабря 2011

Используйте либо

$('.content').on('click', '#your-element-id', function(){  }); 

, либо

$('.content').delegate('click','#your-element-id', function(){  });

Старайтесь не делегировать на document, так как событие должно всплыть на всем протяжении DOM, так как вы знаете, что вашэлемент находится внутри содержимого, тогда вы можете просто делегировать событие этому элементу.

0 голосов
/ 01 декабря 2011

Да, но .click(function () {}) является ярлыком для .bind('click', function () {}), а .bind() работает только для элементов, которые находятся в DOM, когда событие связано.

jQuery> = 1,7

$(document).on('click', '#my-dynamicly-inserted-id', function () {
    //your click handler here for the `.load`-ed element
});

JQuery <1,7 </p>

$(document).delegate('#my-dynamicly-inserted-id', 'click', function () {
    //your click handler here
});

Я не рекомендую использовать .live(), так как это то же самое, что и $(document).delegate(), и амортизируется с jQuery 1.7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...