我已经阅读了关于事件处理的jQuery文档,但我仍然无法理解我应该做什么。
我有一个移动应用程序,其中内容加载了ajax,因此事件无法绑定到文档onLoad上。
随着我的应用程序的增长,我现在开始担心错误的事件处理会给性能带来问题。
对on(),live()和delegate()之间的性能选择有何影响?
还需要考虑其他因素吗?
答案 0 :(得分:6)
从jQuery 1.7开始,绑定事件的官方(且性能最佳)方式是.on
和.off
。与基于id
的选择器结合使用时速度最快:
$('#id').on('click', myHandler);
.on
取代.live
.delegate
和.bind
,有关详细信息,请参阅此处:
答案 1 :(得分:4)
从jQuery 1.7开始,建议所有新代码使用on()
和off()
进行所有事件处理。
答案 2 :(得分:1)
从jQuery 1.7开始,jQuery团队/ API建议:
[。]不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。
参考:live()
API reference, at: http://api.jquery.com/live/
因此,jQuery 1.7之后的选择介于on()
和delegate()
之间;以上建议似乎建议您优先使用.on()
delegate()
。虽然我不能争论为什么。
答案 3 :(得分:1)
如果您要为自己或自己的产品创建javascript应用程序,则应使用jQuery 1.7和.on()
方法。
如果你正在做一些可以在旧版本上使用的插件,我会使用.delegate()