使用较新的 jQuery .click()
,.submit()
等被替换为:
$('#foo').on('click', function() {
//
});
就最佳实践而言。有没有发生过类似的事情.live()
?或者这仍然是最好的方法吗?
$('#foo').live('click', function() {
//
});
使用较新的 jQuery .click()
,.submit()
等被替换为:
$('#foo').on('click', function() {
//
});
就最佳实践而言。有没有发生过类似的事情.live()
?或者这仍然是最好的方法吗?
$('#foo').live('click', function() {
//
});
委托使用.on()
是正确的方法,而不是使用现场
$('staticAncestorElement').on('click','#foo',function(){
});
从 jQuery live()文档中可以看出
$(选择器).live(事件、数据、处理程序); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(事件、选择器、数据、处理程序); // jQuery 1.7+
On()具有所有其他绑定的所有功能。要绑定到动态元素,您可以on()
像这样使用:
$(document).on('click', '#foo', function() {
//
});
最好使用 close 静态元素而不是document
.
引用我关于 jQuery 提供的许多绑定方法的另一篇文章:
bind()
在1.0、1.3、1.4.2 和 1.7 中live()
添加。delegate()
on()
从 1.7 开始
on()
是首选用途,live()
已弃用且根本不推荐使用。如果您使用的是 1.3,请使用1.4.2bind()
代替 和自 1.7 使用,而不是其他任何一个。live()
delegate()
live()
on()
您可以在此处查看完整的帖子,其中还列出了live()
jQuery 1.7 或更高版本中的许多缺点以及不应再使用它的原因。
使用较新的 jQuery .click()、.submit() 等被替换为
他们没有被替换。click
并且submit
仍然有效,但现在它们是on
. 不推荐使用的方法是bind
和live
。现在您可以这样做来委托事件:
$(closestStaticParent).on('click', 'element', function(){ ... })