mouseover与mouseenter区别

学习笔记。

mouseover:在鼠标移入元素本身或者子元素时都会触发事件,相当于有一个冒泡过程。而且在鼠标移入子元素中时,父元素会显示离开的状态;相应的,当鼠标从子元素移入父元素,子元素也会显示离开状态。与之相对应的是“mouseout”。

mouseenter:仅在鼠标移入元素本身才会触发事件,移入子元素并不会触发事件,相当于没有冒泡过程。与之相对应的是“mouseleave”。

举个例子:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <style>
        #div1 {
            float: left;
            margin: 20px;
            width: 200px;
            height: 200px;
            background-color: red;
        }
        #div2 {
            width: 50px;
            height: 50px;
            background-color: yellow
        }
        #div3 {
            float: left;
            margin: 20px;
            width: 200px;
            height: 200px;
            background-color: blueviolet;
        }
        #div4 {
            width: 50px;
            height: 50px;
            background-color: aqua;
        }
    </style>
    <script>
        $(function(){
            
            $("#div1")
            .mouseover(function(){
                console.log("进入div1");
            })
            .mouseout(function(){
                console.log("离开div1");
            })
            
            $("#div3")
            .mouseenter(function(){
                console.log("进入div3");
            })
            .mouseleave(function(){
                console.log("离开div3");
            })
            
        })
    </script>
</head>

<body>
    <div id="div1">
        div1
        <div id="div2">
            div2
        </div>
    </div>
    <div id="div3">
        div3
        <div id="div4">
            div4
        </div>
    </div>
</body>
</html>

运行如上代码会得到如下结果:

在后面的测试中将以““来表示鼠标位置。

 接下来让我们测试左边的div(mouseover):

1.进入div1:

 

 

 

 2、进入div1的子元素div2:

 

 

 

 3.离开子元素div2:

 

 

 4.离开div1:

 

 

我们可以很明显的看到:

当鼠标从div1移到子元素div2时,输出了“离开div1”,证明:鼠标移入子元素时,父元素会显示离开状态。

当鼠标从div2移到子元素div1时,也输出了“离开div1”,证明:鼠标移入父元素时,子元素也会显示离开状态。

接下来测试右边的div(mouseenter):

1.进入div3:

 

 

2。进入div3的子元素div4:

 

 

3.离开子元素div4:

 

 

 

4。离开div3:

 

 可以看到,仅在移入元素本身才会触发其事件,移入子元素并不会触发事件。

posted @ 2020-05-18 06:43  mmzkyl  阅读(472)  评论(0)    收藏  举报