从一个小打转转,看来,如果在移动元素时左键保持在Windows7中的Chrome 30.0.1599.69 M不产生MouseEnter事件。因此,依靠onmouseenter事件给出与使用css相同的结果 - 也许这个(非触发)事件用于向css引擎发出某些需要更改的信号。
无论如何,你可以添加代码来处理mousemove和mouseout事件。我只是用js设置文本颜色,尽管切换类的东西可能是更好的选择。至少js会使用css应该使用的时间,所以它不会全部开销,尽管它在每次鼠标移动时都会重新执行它。
也许你可以在你想要删除的处理程序中使用removeEventListener。如果是这样,您可以附加js以使用addEventListener处理事件,并在页面加载时附加到两个事件。当触发onmousemove事件时,您可以更改样式,然后删除处理程序。然后,在mouseout事件触发时,您可以恢复样式并重新附加onmove处理程序。如果试图从事件中删除处理程序,处理程序本身会失败,但只能尝试,我不会感到惊讶。它只会向js中添加几个字节,但会极大地提高效率(在链接方面而不是在整个页面方面) - 如果鼠标在链接上移动到100%时效果可能非常差 - 即样式每次进入/离开周期只设置一次并清除一次。
<a href="http://www.jsfiddle.net" onmousemove = "this.style.color='red'" onmouseout = "this.style.color=''">words</a>
适用于我 - 注意:只在win7中使用chrome进行测试。
它有什么不同?有人应该按住鼠标左键的唯一原因是在页面上突出显示文本或其他内容。你担心一些无关紧要的事情。 – Purag
在拖动操作过程中按住鼠标左键。 – Chris
这不是[与Chrome的文本选择冲突](http://stackoverflow.com/questions/11106955/change-cursor-over-html5-canvas-when-dragging-in-chrome),是吗? –