JavaScript 事件冒泡

事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发。这一过程被称为事件冒泡;这个事件从原始元素开始一直冒泡到DOM树的最上层。


不是所有的事件都能冒泡。以下事件不冒泡:blur、focus、load、unload、onmouseenter、onmouseleave


demo.html:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        .box1 {
            width: 500px;
            height: 500px;
            background-color: pink;
        }
        .box2 {
            width: 300px;
            height: 300px;
            background-color: yellow;
        }
        .box3 {
            width: 100px;
            height: 100px;
            background-color: blue;
        }


    </style>
</head>
<body>

<div class="box1" id="box1">
    <div class="box2">
        <div class="box3"></div>
    </div>
</div>

<script>

    var box1 = document.getElementById("box1");
    var box2 = box1.children[0];
    var box3 = box2.children[0];

   //事件冒泡(先触发子元素,后触发父系元素):   div-> body-> html-> document(-> window)
   box1.ondblclick = function () {
       alert("我是box1");
   }

   box2.ondblclick = function () {
       alert("我是box2");
   }

   box3.ondblclick = function () {
       alert("我是box3");
   }

   document.ondblclick = function () {
       alert("我是document");
   }

   //事件捕获(先触发父系元素,后触发子元素):  (window->) document-> html-> body-> div
   box1.addEventListener("click", function () {
       alert("我是box1");
   },true);

   box2.addEventListener("click", function () {
       alert("我是box2");
   },true);

   box3.addEventListener("click", function () {
       alert("我是box3");
   },true);

   document.addEventListener("click", function () {
       alert("我是document");
   },true);


</script>

</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值