关于onmouseout事件

时间:2010-06-10 09:47:37

标签: javascript javascript-events

如下代码:

<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”上不会触发警报。

很热吗?

感谢所有人:)

2 个答案:

答案 0 :(得分:4)

这是mouseout和mouseover事件的标准行为。 Internet Explorer实际上是竞争对手(为了改变),因为它拥有提供您正在寻找的行为的专有事件; onmouseenteronmouseleave。主要缺点是这些事件不是标准的一部分,其他浏览器没有实现它们。

如果你使用jQuery,它有一个很好的跨浏览器实现.mouseleave()。无论如何,使用框架来处理跨浏览器事件是个好主意。它不一定是jQuery,但我不确定其他人是否有mouseleave事件。

如果您没有使用jQuery或提供模拟事件的框架,请参阅http://ecmascript.stchur.com/2007/03/15/mouseenter-and-mouseleave-events-for-firefox-and-other-non-ie-browsers/

答案 1 :(得分:2)

我在这里发现了一些看起来像你需要的功能:http://codingrecipes.com/onmouseout-fix-on-nested-elements-javascript