有什么办法可以在以后添加处理程序吗?

时间:2011-04-27 23:00:42

标签: jquery live

$('.kkk').click(function() {
  // Execute Event
});

$('body').append('<div class="kkk">Another target</div>');

由于它是在调用.click()之后添加的,因此单击它将不执行任何操作。

A&GT;我想知道是否有任何方法可以触发处理程序(点击)以后添加?     除了live()

谢谢~~~~

2 个答案:

答案 0 :(得分:1)

delegate()正是您需要的。我认为应该弃用live()

$("body").delegate(".kkk", "click", function() {

    // Execute Event

});

编辑:看看有关live()与delegate()的讨论,请查看此问题的已发布回答:Jquery live() vs delegate()。我认为很清楚。

答案 1 :(得分:1)

$('.kkk').live('click',function() {
  // Execute Event
});

$('body').append('<div class="kkk">Another target</div>');

使用live将匹配写入页面的所有未来元素以及事件“绑定”时存在的元素。

<强>更新

1.7版本的jQuery已弃用live(和bind),赞成将on与委派事件一起使用。要使用委派事件,请将on附加到加载时页面上存在的元素,然后通过稍后将存在的选择器进行过滤。例如:

$('body').on('click', '.kkk', function(){
    // Execute Event
});

$('body').append('<div class="kkk">Another target</div>');

如果在触发文档onload时页面上存在该元素,您只需将其附加为:

$('body .kkk').on('click', function(){
    // Execute Event
});