【发布时间】:2010-12-10 23:11:21
【问题描述】:
我正在尝试创建一个简单的 html 表格,当用户将鼠标悬停在该行上时会突出显示该行。不幸的是,CSS 悬停项不适用于 IE。这让我用 Javascript 模拟它。我可以使用onmouseenter 或onmouseover。
它们之间有什么区别,我应该使用哪一个?
【问题讨论】:
标签: javascript html dom-events
我正在尝试创建一个简单的 html 表格,当用户将鼠标悬停在该行上时会突出显示该行。不幸的是,CSS 悬停项不适用于 IE。这让我用 Javascript 模拟它。我可以使用onmouseenter 或onmouseover。
它们之间有什么区别,我应该使用哪一个?
【问题讨论】:
标签: javascript html dom-events
onmouseenter 和 onmouseover 在鼠标进入元素边界时触发。但是,如果鼠标进入第一个元素中的子元素,onmouseenter 不会再次触发(不会冒泡)。
【讨论】:
onmouseenter,Chrome 从版本 30(2013 年 10 月)开始支持它 (source)。除了this webkit bug,我找不到其他 Safari 的信息,该修复于 2013 年 4 月提交。所以onmouseenter 现在应该适用于大多数主要浏览器的用户。
与 onmouseover 事件不同,onmouseenter 事件不会冒泡。换句话说,当用户将鼠标指针移到对象包含的元素上时,onmouseenter 事件不会触发,而 onmouseover 会触发。
我总是使用鼠标悬停。我出于相同目的使用 onmouseover(突出显示一行)。
【讨论】:
您也可以通过添加对 IE 中所有元素的 :hover 支持来节省一些编码:
试试csshover.htc
【讨论】: