Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript div onmouseout不符合预期_Javascript_Dom Events_Mousemove - Fatal编程技术网

Javascript div onmouseout不符合预期

Javascript 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,然后是一个内部有嵌套表的div:在父div之外还有一些div

<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()
函数的原因

有用的阅读:


我建议您阅读这篇关于javascript事件三个阶段的文章。

在函数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
对我来说很有用