避免事件冒泡

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>避免事件冒泡</title>
        <style>
            #box1{width:150px;height:150px;background:red;}
            #box2{width:100px;height:100px;background:yellow;}
            #box3{width:50px;height:50px;background:green;}
        </style>
    </head>
    <body>
        <div id="box1">
            <div id="box2">
                <div id="box3"></div>
            </div>
        </div>
    </body>
    <script>
    /*
     * 避免事件冒泡,需要在函数处添加上一个参数(e|ev),然后使用e.cancelBubble对冒泡事件进行处理,赋值true禁止
     * 事件冒泡,如果是false允许事件冒泡(默认)
     * 
     * 1. 允许多个操作集中在一起处理
     * 2. 让不同的对象捕获同一个事件,并调用自己的专属程序做自己的事情
     */
    document.getElementById('box1').onclick = function(e){
        this.style.backgroundColor = 'green';
    };
    document.getElementById('box2').onclick = function(e){
        this.style.backgroundColor = 'red';
        event.cancelBubble = true;
    };
    document.getElementById('box3').onclick = function(e){
        this.style.backgroundColor = 'yellow';

        var ev = e || event;    // IE只能使用window的event属性
        ev.cancelBubble = true;
    };
    </script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值