老师!关于mousemove和mouseenter

来源:5-2 编程练习

沉木岩

2020-08-25 07:41:20

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>习题</title>
    <style>
    div {
        width: 300px;
        height: 300px;
        border: 1px solid red;
        text-align: center;
        line-height: 300px;
    }
    </style>
</head>

<body>
    <div></div>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
    <script>
    //此处写代码
    $(document).ready(function(){
        $("div").mouseenter(function(event){
            $("div").text("pageX:"+event.pageX+"pageY:"+event.pageY);
        });
    });
    </script>
</body>

</html>
----------------------------------------------------------------------------------------------------------------

关于mousemove和mouseenter的区别,这里面使用mouseenter感觉就不对劲,只有在鼠标每次进入的时候才会触发而更新pageX和pageY。

它俩的区别不是在于冒泡机制吗,mousemove 绑定的对象如果有子元素子元素也会一并触发,但是绑定同样的对象mouseenter不会触发子元素,但是这里面的div并不存在子元素,为什么它俩效果会不一样

写回答

1回答

好帮手慕夭夭

2020-08-25

同学你好,这个与冒泡无关。要重新理解一下事件的功能是什么?具体参考如下:

mousemove表示鼠标移动事件,即在某一个元素移动的时候,就会触发。

mouseenter表示鼠标移入事件,即鼠标从元素外部移入到元素里面的那一刻,就会触发。

它们的区别就是,一个是鼠标移动时一直触发,一个是鼠标移入元素的时候触发。所以本题代码中,是在元素中一直移动,要选择mousemove事件才可以的。

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 14456 问题

查看课程