Javascript div onmouseout不符合预期
根据以下内容改编的文本和示例代码可能无法反映实际问题: 我有一个div,然后是一个内部有嵌套表的div:在父div之外还有一些divJavascript div onmouseout不符合预期,javascript,dom-events,mousemove,Javascript,Dom Events,Mousemove,根据以下内容改编的文本和示例代码可能无法反映实际问题: 我有一个div,然后是一个内部有嵌套表的div:在父div之外还有一些div <div onmousemove="move()" onmouseout="out()"> <div id="dvRep"> </div> <table> <tr><td>ITEM 1</td>
<div onmousemove="move()" onmouseout="out()">
<div id="dvRep"> </div>
<table>
<tr><td>ITEM 1</td></tr>
<tr><td>ITEM 2</td></tr>
<tr><td>ITEM 3</td></tr>
<tr><td>ITEM 4</td></tr>
<tr><td>ITEM 5</td></tr>
</table>
</div>
<div id="divChartPopupMenu">
Hide me.
</div>
项目1
项目2
项目3
项目4
项目5
把我藏起来。
每当我在div中移动鼠标时,它都会正确地调用move函数,但是onmouseout
属性并不像我想象的那样工作。我认为只有将鼠标移出div时才会调用out()
函数,但是每当我移出一个表行时就会调用out()
。因此,如果我的鼠标在一行上,我移动到下一行,它将调用out()
。我希望只有当用户离开整个div时才调用out()
。有什么想法吗
我正在尝试的是on out函数,我正在隐藏另一个div。听起来您对事件冒泡有问题 当您将鼠标悬停在
tr
上时,您的鼠标不再位于div
-因此,当您在它们之间移动时,您将进入tr(out)
->div(in)
->div(out)
->tr(in)
。这就是为什么在tr
之间调用out()
函数的原因
有用的阅读:
在函数move或out中,您可以检查srcelelement(IE)或target(W3C)是否有一个名为dvRep的id 它应该是这样的:
function out(event)
{
event.stopPropagation(); //cancel bubbling
ele = event.target || event.srcElement
if (ele.id === "dvRep"){
//your code
}
}
onmouseleave
对我来说很有用