onmouseout事件的问题

onmouseout事件的问题

为什么给外层的嵌套绑定一个事件,内层的嵌套也能够执行啊?

下面这段代码,不仅在鼠标划出外层嵌套的时候执行,在内层的每个嵌套划过时,它都会执行。可我明明是绑定了最外层嵌套的事件啊,请问这是为什么呢?不希望内层嵌套也执行这个事件,我该怎么改啊?

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{margin:0;padding:0;}

div#out{
    width: 200px;
    height: 200px;
    background: green;
}
div#inner1{
    width: 50px;
    height: 50px;
    background: red;
}
div#inner1-1{
    width: 30px;
    height: 30px;
    background: yellow;
}
div#inner2{
    width: 50px;
    height: 50px;
    background: blue;
}
</style>
</head>
<body>
<div id="out">
    <div id="inner1">
        <div id="inner1-1"></div>
    </div>
    <div id="inner2"></div>
</div>
</body>
<script>
var out = document.getElementById("out");
out.onmouseover = function(){
    console.log("mouseout");
}
</script>
</body>
</html>


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

<script>

var out = document.getElementById("out");

out.onmouseover = function(){

  if(event.target==this){  

    console.log("mouseout"); 

  }

}

</script>

这是JS的高级事件知识,在JS的高级路径中会有讲解,当前了解即可!

祝学习愉快!

  • 秋渡 提问者 #1
    非常感谢!
    2017-09-17 14:52:33
  • 秋渡 提问者 #2
    知道了。老师,如果我想完全忽略内层嵌套的影响,只当它视觉上存在,不对事件有任何影响,该怎么改哦?
    2017-09-17 15:02:20
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师