mouseover和mouseenter的区别

815 阅读1分钟

1、mouseover和mouseout的事件冒泡机制

2、代码

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="outer" id="outer">
        <div class="inner" id="inner"></div>
    </div>
</body>

</html>
<style>
    .outer {
        width: 100px;
        height: 100px;
        background: indigo;
    }

    .inner {
        width: 50px;
        height: 50px;
        background: lightcoral;
    }
</style>
<script>
    //mouseover和mouseout它忽略层级关系, 根据鼠标在谁身上来决定的
    outer.onmouseover = function () {
        console.log('outer over')
    }
    outer.onmouseout = function () {
        console.log('outer out')
    }
    inner.onmouseover = function () {
        console.log('inner over')
    }
    inner.onmouseout = function () {
        console.log('inner out')
    }
</script>

执行结果:

3、mouseenter和mouseleave的事件传播机制

4、代码

 <!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="outer" id="outer">
        <div class="inner" id="inner"></div>
    </div>
</body>

</html>
<style>
    .outer {
        width: 100px;
        height: 100px;
        background: indigo;
    }

    .inner {
        width: 50px;
        height: 50px;
        background: lightcoral;
    }
</style>
<script>
    //mouseover和mouseout它忽略层级关系, 根据鼠标在谁身上来决定的
    outer.onmouseenter = function () {
        console.log('outer over')
    }
    outer.onmouseleave = function () {
        console.log('outer out')
    }
    inner.onmouseenter = function () {
        console.log('inner over')
    }
    inner.onmouseleave = function () {
        console.log('inner out')
    }
</script>

执行结果: