$('.kkk').click(function() {
// Execute Event
});
$('body').append('<div class="kkk">Another target</div>');
由于它是在调用.click()之后添加的,因此单击它将不执行任何操作。
A&GT;我想知道是否有任何方法可以触发处理程序(点击)以后添加? 除了live()
谢谢~~~~
答案 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
});