有3个嵌套的div。每个div都有自己的onmousemove事件。
现在,只要在最里层的div上mousemove,那么外面两个div的mousemove函数也会执行。如何能让onmousemove事件只触发最里面的的 mousemove?
比如我在22222上移动,只触发id=2的div里的mousemove.
如果在333333上移动,只触发id=3的div里的mousemove.请高手帮忙。谢谢了。
下面的是测试代码:
<script>
function showthis(o)
{
    document.getElementById("dd").innerHTML+=(":"+o.id+"<br>");
}
</script>
<div id="1"  onmousemove="showthis(this);" style="background-color:Red;">111111111111
      <div id="2"   onmousemove="showthis(this);" style="background-color:blue;">22222222222
            <div id="3"    onmousemove="showthis(this);" style="background-color:yellow;">333333333333
            </div>
      </div>
</div><div id="dd"></div>

解决方案 »

  1.   

    在函数里阻止事件冒泡
    function showthis(o)
    {
      document.getElementById("dd").innerHTML+=(":"+o.id+"<br>");
      var evt = arguments[0] || window.event;
      if(evt.stopPropagation)
      {
          evt.stopPropagation();    
      }
      else if(evt.cancelBubble)
      {
          evt.cancelBubble == true;
      }
    }
      

  2.   

    最后写错了,应该是evt.cancelBubble = true;
      

  3.   

    牛!就是有点小问题evt.cancelBubble本身在ie里是false的。
    所以不能用if(evt.cancelBubble)来半段ie.