我有一个网页上有很多(最多100个)html元素。每个人都有一个注册的onmouseover事件,可以根据悬停的元素进行一些逻辑和渲染。
我发现在IE中,登记的事件越多,他们开枪的时间越长。在Firefox中速度很快,在Chrome中速度更快!
有没有人知道这个问题的解决方案。我想也许可以注册一个onmousemove事件并尝试从坐标中检索DOM元素,但我不确定如何做到这一点,或者它只是围绕问题捏造。
答案 0 :(得分:2)
将onmouseover或mousemove(我认为这两个泡沫,不记得)事件附加到身体上,当你将鼠标悬停在实际元素上时,你可以处理你需要做的事情,因为它会冒泡到身体你可以在哪里处理你实际被碾过的元素。您可以使用该元素的自定义属性或expando属性来处理鼠标悬停时对特定元素所需的操作。
您应该只在需要时附加事件,并在不再需要它们时将其分离。在琐碎的页面上,这可能不是必需的,但在像您这样的场景中,它将改善客户端性能。当我们在页面上有数千个表单元素时,我们曾经做过这样的事情。
我的两分钱, nickyt