JavaScript事件对象和冒泡捕获

2018-11-13  本文已影响0人  AuglyXu

事件对象

var oA = document.querySelector("a");
oA.onclick = function (event) {
    alert("a标签被点击了");

    // 禁用默认行为
    // 企业开发推荐
    // return false;
    event = event || window.event;
    // 禁用默认行为
    // 注意点: 高级版本浏览器支持
    event.preventDefault();
    event.returnValue = false; // 老版本IE
}

事件对象的作用

设置事件是捕获还是冒泡

阻止事件的冒泡


事件冒泡的作用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>113-事件冒泡的作用</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .selected{
            background: red;
        }
    </style>
</head>
<body>
<ul>
    <li class="selected item1">我是第1个li</li>
    <li class="item2">我是第2个li</li>
    <li class="item3">我是第3个li</li>
    <li class="item4">我是第4个li</li>
    <li class="item5">我是第5个li</li>
</ul>
<script>
    var oUl = document.querySelector("ul");
    var currentItem = oUl.children[0];

    oUl.onclick = function (event) {
        // console.log("ul被点击了");
        // 如何获取当前触发事件的真实元素
        event = event || window.event;
        // 可以通过事件对象的target属性获取到真正触发事件的那个元素
        // console.log(event.target);
        currentItem.className = "";
        event.target.className = "selected";
        currentItem = event.target;
    }
</script>
</body>
</html>

移入和移出的区别


事件对象的属性

pageX和pageY
target

preventDefault

eventPhase

…………………………还有很多

上一篇 下一篇

猜你喜欢

热点阅读