$('.classname').live('click',function() { some code; });
如果这个类有大约100-200或300个元素会有一些性能问题吗?
答案 0 :(得分:1)
这在很大程度上取决于{ some code }
的内容。唯一的方法是设置和测试。如果性能足够,你没有问题。如果性能很差,那么您可以在Firebug和/或Chrome / Safari开发人员工具中对其进行分析,并尝试进一步优化绑定功能。
答案 1 :(得分:1)
live
和delegate
实际上应该提高大量元素的效果。这当然与bind
相比。如果live
速度很慢,您几乎可以保证bind
会更糟。
原因是delegate
来电*会将该功能存储在单个元素上,而bind
来电则会在上存储该功能的副本每个元素。
当您使用委托时,它会将侦听器存储在将捕获事件的父元素上,并在子元素的上下文中调用回调。
不要过早优化。如果您已经遇到问题,请尝试将代码分离为可重复使用的块,并查看可以减少的数量。如果你没有问题,那么问题是什么?
* live
基本上是$(document).delegate(selector,...)