关于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
<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

浙公网安备 33010602011771号