我有一个包含很多列表元素(接近 3000)的网页。我为这些附加了一个点击事件处理程序和一个悬停事件(使用 jquery)。
$('li').click(function (e){
// do processing here
})
$('li').hover(function (e){
// do processing here for hover in
}, function (e) {
// do processing here hover out
})
在 IE8 上,我开始注意到速度有所下降,我最初的猜测是事件处理程序的数量导致了内存泄漏/消耗问题。这在 Chrome、FF、IE9 中效果很好。
有没有其他人注意到这种行为?
我还认为使用 jquery delegate 可以解决这个问题,因为事件处理程序将存在于父容器中,而不是每个列表元素都有一个。像下面这样的东西-
$("#somecontainer").delegate('li', 'click', function () {
//do processing for click here.
})
非常感谢对此有任何见解。谢谢!
最佳答案
I was also thinking that using jquery delegate would solve this issue, since the event handlers would live in the parent container, and not one for each list element.
当然。还是做吧the "new" way :
$("#somecontainer").on("click", "li", function () {
//do processing for click here.
});
关于javascript - 附加太多事件处理程序时的 IE8 内存泄漏/性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932914/