简介:
可以通过在mouseout事件期间检查relatedTarget属性来干净地完成此 *** 作。如果relatedTarget不是文档的子级,则鼠标刚离开窗口。自己做起来很容易,但是如果您不想这样做,则某些库(Mootools,将来的Prototype..)具有内置功能,而另一些(当前Prototype)具有扩展可用。在IE上,您可以改用mouseleave,这是mouseout的非冒泡版本。
细节:
IE具有名为mouseenter和mouseleave的事件,它们是mouseover和mouseout的非冒泡版本。其他浏览器则不会,但是如果这样做,则在窗口或文档上设置mouseleave侦听器可以解决问题。
一位名叫肯·斯奈德(Ken Snyder)的绅士前来救援:
鼠标悬停时,relatedTarget属性引用指针所来自的节点。在mouseout上,relatedTarget属性引用指针所指向的节点。在任何事件上,作用域是事件附加到的节点。当relatedTarget不是currentTarget的子代时,mouseover事件等效于mouseenter事件和mouseout事件等效于mouseleave事件。
- http://kendsnyder.com/archives/6-MouseEnter-and-
MouseLeave.html
这使得在其他浏览器中实现mouseenter和mouseleave成为可能。实际上,Ken为此提供了相同的Prototype代码:http
:
//kendsnyder.com/sandbox/enterleave/MouseEnterLeave.js
Duroth在评论中指出MooTools已经包含类似的东西。(感谢Duroth。)听起来好像即将发布的Prototype版本(1.6.2)可能包含此功能,但我找不到任何确定的东西。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)