子元素触发了父元素的onmouseout事件。怎么解决能让子元素不触发
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子元素触发了父元素的onmouseout事件。怎么解决能让子元素不触发相关的知识,希望对你有一定的参考价值。
<style>
div
position:absolute;width:100px;height:100px;background:#555;
</style>
<div onmouseout='alert()'>
<button>123</button>
</div>
为什么鼠标移到按钮123上 还要出发alert() 怎么解决 会的话代码加上啊
网上的什么stopPropagation()都没有用
用javascript哦 不要用jquery 我不懂 他
function stopPropagation(e)
e = e || window.event;
if(e.stopPropagation) //W3C阻止冒泡方法
e.stopPropagation();
else
e.cancelBubble = true; //IE阻止冒泡方法
document.getElementById(\'need_hide\').onclick = function(e)
stopPropagation(e);
追问
你自己运行下 你看行不行。鼠标移动到button上和移出 还会alert
参考技术A 把父元素的mouseout也写了不就行了$(parentNode).on("mouseout",function()
//啥都不写就行了
);
//好嘛,不用jq
parentNode.onmouseout = function(e)
//啥都不要写
靠,你哪里来的父元素,就是body了嘛。。。。
完了,被误导了
你这个我知道一个办法,用JQ的
$(nageDiv).on("mouseleave",function()
alert("DS");
//OK啦。这样保证不会移到btn还触发alert了
) 参考技术B 当你滑过子元素的时候必须经过父级元素,当你离开子元素时也是要经过父级元素,所以就触发了onmouseout追问
怎么解决
以上是关于子元素触发了父元素的onmouseout事件。怎么解决能让子元素不触发的主要内容,如果未能解决你的问题,请参考以下文章
解决内部元素onMouseOver/onMouseOut事件冒泡触发父元素的相应事件