使用较新的jQuery .click()
,.submit()
等替换为:
$('#foo').on('click', function() {
//
});
就最佳做法而言。在.live()
发生了类似的事吗?或者这仍然是最好的方法吗?
$('#foo').live('click', function() {
//
});
答案 0 :(得分:3)
使用.on()
的授权是正确的方式,而不是使用实时
$('staticAncestorElement').on('click','#foo',function(){
});
从jQuery live()文档中可以看到
$(selector).live(events,data,handler); // jQuery 1.3 +
$(document).delegate(selector,events,data,handler); // jQuery 1.4.3 +
$(document).on(事件,选择器,数据,处理程序); // jQuery 1.7 +
答案 1 :(得分:3)
On()具有所有其他绑定的所有功能。要绑定到动态元素,您可以使用on()
,如下所示:
$(document).on('click', '#foo', function() {
//
});
最好使用close静态元素而不是document
。
引用我的另一篇文章,了解jQuery提供的许多绑定方法:
bind()
已添加到1.0,live()
添加到1.3,delegate()
添加到1.4.2中 1.7中的on()
。从1.7开始
on()
是首选用途,live()
已被弃用 根本不推荐。如果您使用的是1.3,请使用bind()
代替live()
以及从1.4.2开始使用delegate()
代替live()
1.7使用on()
而不是其他任何一个。
您可以看到完整的帖子here,其中还列出了live()
的许多缺点以及为什么它不应该在jQuery 1.7或更高版本中再次使用。
答案 2 :(得分:1)
使用较新的jQuery .click(),. submit()等替换为
他们没有被替换。 click
和submit
仍有效,但现在它们是on
的快捷方式。不推荐使用的方法是bind
和live
。现在,您可以执行此操作来委派事件:
$(closestStaticParent).on('click', 'element', function(){ ... })
答案 3 :(得分:1)