我已经阅读了jQuery有关事件处理的文档,但我仍然不太明白该怎么做。
我的移动应用程序使用ajax加载内容,因此无法在文档的onLoad绑定事件。
随着应用程序的增长,我现在开始担心错误的事件处理可能会导致性能问题。
选择on()、live()和delegate()之间对性能的影响是什么?
还有其他需要考虑的事情吗?
我已经阅读了jQuery有关事件处理的文档,但我仍然不太明白该怎么做。
我的移动应用程序使用ajax加载内容,因此无法在文档的onLoad绑定事件。
随着应用程序的增长,我现在开始担心错误的事件处理可能会导致性能问题。
选择on()、live()和delegate()之间对性能的影响是什么?
还有其他需要考虑的事情吗?
.on
和.off
。如果与基于id
的选择器组合使用,则速度最快:$('#id').on('click', myHandler);
.on
优于 .live
, .delegate
和 .bind
,更多信息请参见此处:
on()
和off()
来处理所有事件。详情请参考:http://blog.jquery.com/2011/11/03/jquery-1-7-released/。从jQuery 1.7开始,jQuery团队/ API建议:
[the] .live()方法已被弃用。使用.on()来附加事件处理程序。使用旧版本的jQuery的用户应优先使用.delegate()。
参考:live()
API 参考文档,网址:http://api.jquery.com/live/
因此,在jQuery 1.7之后,选择是在on()和delegate()之间进行;上面的建议似乎表明您应该优先使用.on()而不是delegate()。虽然我无法争辩为什么会这样。
.on()
方法。.delegate()
。
.on()
和.off()
的概念似乎意味着.delegate()
将来可能会被弃用,因为它看起来做的事情与.on()
差不多。 - David Thomas