Javascript js和html中的onmouseout行为

Javascript js和html中的onmouseout行为,javascript,html,onmouseout,Javascript,Html,Onmouseout,在上面的链接中,当鼠标离开链接时,someFunction()。看起来很直截了当。但是当我将鼠标悬停在图像“blah.jpg”上时,onmouseout事件也会触发。这是不可取的,因为“blah.jpg”实际上位于a节点中。如果我在a节点内有一个div,或者除了纯文本之外的任何其他html元素,也会发生同样的情况:javascript认为这是a节点之外的。有没有办法阻止这些事件不正确地触发?所描述的行为在win7上的chrome和ff中 *更新:如果有jquery解决方案,请告诉您可以通过验证节

在上面的链接中,当鼠标离开链接时,
someFunction()。看起来很直截了当。但是当我将鼠标悬停在图像“blah.jpg”上时,onmouseout事件也会触发。这是不可取的,因为“blah.jpg”实际上位于
a
节点中。如果我在
a
节点内有一个div,或者除了纯文本之外的任何其他html元素,也会发生同样的情况:javascript认为这是
a
节点之外的。有没有办法阻止这些事件不正确地触发?所描述的行为在win7上的chrome和ff中


*更新:如果有jquery解决方案,请告诉您可以通过验证节点类型来实现这一点。试一试

<a href="/somewhere" onmouseout="someFunction()">blah blah blah<img src="blah.jpg"></a>

概念上和谢扎德相似,所以我选了他。应该可以跨浏览器工作。 在html中:

在js中(包括jquery文件):


}

听起来你可能想要
onmouseup
取而代之…当OP试图使用
mouseout
时,为什么要单击相关事件,如
mouseup
来帮助OP?也许可以评估移动到
childNode
是否会触发
mouseout
?不过,我不确定在纯JavaScript中是如何实现的。@Rorymcrossan如果真的需要mouseout,那就不会了,但是图像不能移到标记之外吗?我可能遗漏了一些东西,但这不是理想的行为吗?如果图像仍然需要可点击,那么将这两个标记放在不同的标签中,并将onmouseout仅放在文本上如何?这很可能会起作用,但实际上应该放在它自己的处理程序中。把它放在
on-
属性中会让我做噩梦。而且,这绝对不是跨浏览器的。
onmouseout="if ((event.relatedTarget || event.toElement) == this.parentNode) someFunction()"
onmouseout='out(this)'
out(thisRef) {
   var newHover = event.relatedTarget || event.toElement;
   if(!jQuery.contains(thisRef,newHover) && !(thisRef==newHover)) {
        someFunction();
   }