【发布时间】:2011-12-13 08:06:57
【问题描述】:
我试图阻止 onmouseout 事件在鼠标从外部 div 移动到容器的子元素之一时触发。这是我想出的解决方案。它适用于 IE8 和 Chrome,但不适用于 Firefox(最新版本)。这是因为在 Foo 函数中,window.event 为空。我还验证了没有参数传递到函数中。如何让这段代码在 Firefox 中运行?
<html>
<body>
<div style="background-color: blue; width: 400px; height: 400px;" onmouseout="Foo()" id="Outer">
<div style="background-color: green; width: 100px; height: 100px;" id="Inner">
Child element
</div>
</div>
<script language="JavaScript">
var outer = document.getElementById('Outer');
function Foo()
{
var toElem = event.relatedTarget || event.toElement;
if(toElem != outer.parentNode)
return;
window.alert('Outer div fired onmouseout..');
}
</script>
</body>
</html>
【问题讨论】:
-
为什么不在你的电脑上安装主流浏览器并测试一下呢?我就是这样做的,IE、Chrome、FF、Safari 和 Opera
-
你为什么不测试每个主要的浏览器呢?你只缺少 FF、Safari 和 Chrome。无论如何,使用 jQuery,您基本上在任何浏览器中都有一个工作脚本(在大多数情况下)
-
检查浏览器对 DOM 事件(以及 CSS 属性)兼容性的好网站:quirksmode.org/dom/events/index.html
-
+1 用于 jQuery 或其他库,您可能无法获得更好的跨浏览器支持..
-
+1 表示希望自己找到解决方案(而不是躲在 jQuery 后面)。 -1 要求 StackOverflow 做你应该做的基本测试。试试看。如果它不起作用,请尝试找到解决方案。如果您遇到困难,请提出问题。
标签: javascript html firefox dom cross-browser