使用较新的jQuery .click()、.submit()等替换为:
$('#foo').on('click', function() {
//
});在最佳实践方面。.live()也发生过类似的事情吗?或者,这仍然是最好的方法吗?
$('#foo').live('click', function() {
//
});发布于 2012-12-01 05:54:38
拥有所有其他绑定的所有功能。要绑定到动态元素,可以像这样使用on():
$(document).on('click', '#foo', function() {
//
});最好是使用关闭的静态元素,而不是document。
引用我的另一篇文章关于jQuery提供的许多绑定方法:
在1.0中添加了
bind(),在1.3中添加了live(),在1.4.2中添加了delegate(),在1.7中添加了on()。
在1.7版本中,on()是首选用法,live()已弃用,根本不推荐使用。如果您使用的是1.3版本,请使用bind()而不是live();在1.4.2版本中,请使用delegate()而不是live();在1.7版本中,请使用on()而不是其他任何版本。
您可以查看完整的post here,其中还列出了live()的许多缺点,以及为什么在jQuery 1.7或更高版本中不应该再使用它。
发布于 2012-12-01 05:54:28
使用.on()而不是live是正确的委派方式
$('staticAncestorElement').on('click','#foo',function(){
});正如您从jQuery live()文档中所看到的
$(选择器).live(事件,数据,处理器);// jQuery 1.3+
$(文档).delegate(选择器,事件,数据,处理器);// jQuery 1.4.3+
$(Document).on(事件,选择器,数据,处理器);// jQuery 1.7+
发布于 2012-12-01 05:55:02
具有较新的jQuery .click()、.submit()等的
被替换为
他们没有被替换。click和submit仍然有效,但现在它们是on的捷径。不推荐使用的方法是bind和live。现在,您可以执行以下操作来委托事件:
$(closestStaticParent).on('click', 'element', function(){ ... })https://stackoverflow.com/questions/13653698
复制相似问题