我有一个<ul>
,有很多孩子(接近3000项),有些<li>
有很多级别。我在'click'上附加了一个事件监听器(我正在使用jQuery),我用它来切换<li>
子项的可见性。
我想知道如此多的事件监听器会影响性能。 (至少有1000个!)。这对性能来说是个大问题吗?
对于较新的网络浏览器,我并没有真正看到很多性能问题,但IE8似乎非常慢。在所有事情上敲打一个事件听众是不是不负责任?!
答案 0 :(得分:9)
答案很明显是。 是的,会影响效果。事件委托是为这件事而建的。不要将处理程序绑定到每个li
,而是将其绑定到其父项ul
。这样ul
会将click
事件委托给li
。
$("ul").on("click", "li", function () {
//your code
});