我已经阅读了关于事件处理的jQuery文档,但是我仍然不能真正理解我应该做什么。
我有一个移动应用程序,其中的内容是用ajax加载的,所以事件不能绑定在文档onLoad的内容。
随着应用程序的增长,我现在开始担心错误的事件处理可能会导致性能问题。
选择on()、live()和delegate()对性能的影响是什么?
还有什么要考虑的吗?
从jQuery 1.7开始,绑定事件的官方(也是最高效的)方式是.on
和.off
。当与基于id
的选择器结合时,它是最快的:
$('#id').on('click', myHandler);
.on
取代.live
、.delegate
和.bind
,查看更多信息:
从jQuery 1.7开始,建议所有新代码都使用on()
和off()
来处理所有事件。
从jQuery 1.7开始,jQuery团队/API建议:
[the] .live()方法已弃用。使用.on()来附加事件处理程序。使用旧版本jQuery的用户应该优先使用。delegate(),而不是。live()。
参考:live()
API参考,网址:http://api.jquery.com/live/
所以选择,后jQuery 1.7,是on()
和delegate()
之间;上面的建议似乎建议您应该优先使用.on()
而不是delegate()
。虽然我不能争论为什么是
如果您正在为自己或自己的产品创建javascript应用程序,您应该使用jQuery 1.7和.on()
方法。
如果你正在做一些插件,可以在旧版本上使用,我会使用.delegate()