数百个DOM元素的JavaScript事件监听器性能

时间:2013-07-24 18:02:12

标签: javascript jquery performance

我有一个<ul>,有很多孩子(接近3000项),有些<li>有很多级别。我在'click'上附加了一个事件监听器(我正在使用jQuery),我用它来切换<li>子项的可见性。

我想知道如此多的事件监听器会影响性能。 (至少有1000个!)。这对性能来说是个大问题吗?

对于较新的网络浏览器,我并没有真正看到很多性能问题,但IE8似乎非常慢。在所有事情上敲打一个事件听众是不是不负责任?!

1 个答案:

答案 0 :(得分:9)

答案很明显是的,会影响效果。事件委托是为这件事而建的。不要将处理程序绑定到每个li,而是将其绑定到其父项ul。这样ul会将click事件委托给li

$("ul").on("click", "li", function () {
 //your code
});