关于DIV事件传递的解决方法

今天写一个mouseout事件的时候
<div onmouseout="$(this).hide()" style="border: solid 4px #1C5C75;width:100">
      <a href="javascript:;">[操作]</a>
</div>

当鼠标移到[<a href="javascript:;">[操作]</a>]标签上的时候时,也会触发mouseout事件。

解决方法:
第一种方法:用moveleave事件(只支持ie浏览器)
<div onmouseleave="$(this).hide()" style="border: solid 4px #1C5C75;width:100">
      <a href="javascript:;">[操作]</a>
</div>

另一种方法 :

<div id="div3" style="border: solid 4px #1C5C75;width:100">
      <a href="javascript:;">[操作]</a>
</div>
<script>
$("#div3").mouseout(function(e)
{
      
                if (!e) var e = window.event;
             var tg = (window.event) ? e.srcElement : e.target; 
             if (tg.nodeName != 'DIV') return;
             var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
            
             while (reltg != tg && reltg.nodeName != 'BODY')
          {
              reltg= reltg.parentNode
          }
         
             if (reltg!= tg)
                 $(this).hide();
 })
</script>

例子:demo

参考:http://www.quirksmode.org/js/events_mouse.html
posted @ 2009-08-20 15:14  流星瓶的梦  阅读(755)  评论(0)    收藏  举报