jQuery .load -ed ID可以响应click事件吗?

时间:2011-11-30 22:44:50

标签: jquery events

使用jQuery,我将$('content').load文本添加到我的网页上的一个类中。内容包括我想要响应点击事件的新ID。这可能吗? 这是脚本......

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

4 个答案:

答案 0 :(得分:1)

您可以使用livedelegate方法绑定到将来要创建(加载)的元素的click事件。

答案 1 :(得分:1)

是的,使用 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');
   });
 });

答案 2 :(得分:0)

是的,.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

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

我不建议使用.live(),因为它与$(document).delegate()相同,并且从jQuery 1.7开始折旧。

答案 3 :(得分:0)

使用

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

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

尝试不委托给document,因为事件必须在DOM中一直冒泡,因为您知道您的元素在内容中,那么您可以将事件委托给该元素。