如下代码所示:
<div id="outerBox" style="border:1px solid red;width:300;height:300" onmouseout="alert('out')">
<div id="innerBox" style="border:1px solid blue;width:50;height:50">inner</div>
</div>为什么当我在"innerBox“上移动鼠标时,它是触发警报(‘out’)?
我只想要鼠标"outerBox“触发警报(‘out’),鼠标在"innerBox”上不会触发警报。
这么做很热吗?
感谢所有人:)
发布于 2010-06-10 18:07:24
这是mouseout和mouseover事件的标准行为。Internet Explorer实际上在这方面胜过了竞争对手(改变一下),因为它有专有的事件,可以提供你想要的行为:onmouseenter和onmouseleave。主要的缺点是这些事件不是标准的一部分,其他浏览器也没有实现它们。
如果你使用jQuery,它有一个很好的跨浏览器的.mouseleave()实现。无论如何,使用框架为您处理跨浏览器事件是一个好主意。它不一定是jQuery,但我不确定其他人是否有mouseleave事件。
如果未使用jQuery或提供模拟事件的框架,请参见http://ecmascript.stchur.com/2007/03/15/mouseenter-and-mouseleave-events-for-firefox-and-other-non-ie-browsers/
发布于 2010-06-10 18:00:48
我在这里找到了一些看起来像您需要的函数:http://codingrecipes.com/onmouseout-fix-on-nested-elements-javascript
https://stackoverflow.com/questions/3013292
复制相似问题