0
点赞
收藏
分享

微信扫一扫

阻止冒泡,默认行为

前行的跋涉者 2022-04-14 阅读 88
javascript

阻止冒泡:

<style>
        #box {
            width: 200px;
            height: 200px;
           background-color: red;
        }

        #bigbox {
            width: 300px;
            height: 300px;
            background-color:  green;
        }
    </style>
    <div id="bigbox">
        <div id="box">
            <button id="btn">按钮</button>
        </div>
    </div>


    <script>
        var box = document.getElementById('box')
        var btn = document.getElementById('btn')
        btn.onclick = function (e) {

            e = e || window.event
            //阻止事件向上冒泡,stopPropagation方法可以阻止事件冒泡 且遵从w3c规则
            // e.stopPropagation()
            //ie浏览器的阻止事件冒泡    利用了一个属性cancelBubble  设置为true,也兼容但不遵从w3c规范
            //e.cancelBubble = true //取消冒泡
            if (e.stopPropagation) {
                e.stopPropagation()
            } else {
                e.cancelBubble = true
            }
            console.log('btn被点击了');
        }
        box.onclick = function () {
            console.log('box被点击了');
        }
        bigbox.onclick = function () {
            console.log('大box被点击了');
        }
        //在点击div里面的按钮时,会触发div的点击事件 事件冒上去了
        //在触发事件的时候
    </script>

阻止默认行为:

  <a href="http//www.baidu.com"></a>
    //a标签默认会跳转页面
    <script>
        document.getElementsByTagName('a')[0].onclick=function(){
            console.log('a点击了');
            //return false  阻止默认行为 遵从w3c,但ie9之前不兼容
            return false
            //ie兼容写法    其他浏览器也可以用
            e.preventDefault()//阻止默认事件
            //针对低版本浏览器
            e.returnValue=false
        }


    </script>
举报

相关推荐

0 条评论