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();
}