javascript - 加速 IE 中的多个 onmouseover 事件

标签 javascript html events dom browser

我有一个包含许多(多达 100 多个)html 元素的网页。每个都有一个注册的 onmouseover 事件,根据悬停在哪个元素上来触发以执行一些逻辑和渲染。

我发现在 IE 中,注册的 onmouseover 事件越多,它们触发的时间就越长。在 Firefox 中速度很好,在 Chrome 中速度更快!

有谁知道这个问题的解决方案。我想也许可以注册一个 onmousemove 事件并尝试从坐标中检索 DOM 元素,但我不确定如何执行此操作,或者它是否只是对问题的一种捏造。

最佳答案

将 onmouseover 或 mousemove(我认为这两个冒泡,不记得了)事件附加到 body 上,当您将鼠标悬停在实际元素上时,您可以处理您需要做的事情,因为它会冒泡到 body您可以在其中处理实际鼠标悬停的元素。您可以使用该元素的自定义属性或 expando 属性来处理您需要在特定元素的鼠标悬停时执行的操作。

您实际上应该只在需要时附加事件,并在不再需要时分离它们。在普通页面上,这可能不是必需的,但在像您这样的场景中,它会提高客户端性能。当我们在一个页面上有数千个表单元素时,我们曾经在我工作的地方做这样的事情。

我的两分钱, 尼基特

关于javascript - 加速 IE 中的多个 onmouseover 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667118/

相关文章:

javascript - 如何在 Dreamweaver 中使用 JavaScript 创建点击计数器?

javascript - 由于子引用错误而无法删除数据?

html - ie7的布局问题

javascript - 背景附件 : fixed is not working on mobile devices

python - 在 QscrollArea 上禁用鼠标滚轮滚动

javascript - 如何在 Bootstrap 中自动换行

javascript - 来自 api 的 ComponentDidUpdate() 数据和新数据

html - 使用 CSS 定位

android - 如何获得连续的触摸事件?

javascript - 搜索事件的更好方法?