美文网首页
19-阻止事件冒泡

19-阻止事件冒泡

作者: 仰望_IT | 来源:发表于2019-05-11 00:03 被阅读0次
    • stopPropagation 方法
      • 注意点: stopPropagation 方法只支持高级浏览器
        // 1.拿到需要操作的元素
        let oFDiv = document.getElementById("father");
        let oSDiv = document.getElementById("son");
      
        // 2.注册事件监听
        oFDiv.onclick = function () {
            console.log("father");
        };
        oSDiv.onclick = function (event) {
            event = event || window.event;
            // 注意点: stopPropagation方法只支持高级浏览器
            event.stopPropagation();
      
            console.log("son");  // 只会执行son
        };
      
    • cancelBubble 方法
      • 低级浏览器的写法
        // 1.拿到需要操作的元素
        let oFDiv = document.getElementById("father");
        let oSDiv = document.getElementById("son");
      
        // 2.注册事件监听
        oFDiv.onclick = function () {
            console.log("father");
        };
        oSDiv.onclick = function (event) {
            event = event || window.event;
      
            // 低级浏览器的写法
            event.cancelBubble = true;
      
            console.log("son");
        };
      
    • 兼容性写法
        // 1.拿到需要操作的元素
        let oFDiv = document.getElementById("father");
        let oSDiv = document.getElementById("son");
      
        // 2.注册事件监听
        oFDiv.onclick = function () {
            console.log("father");
        };
        oSDiv.onclick = function (event) {
            event = event || window.event;
      
            // 兼容性写法
            if (event.cancelBubble){
                event.cancelBubble = true;
            } else {
                event.stopPropagation();
            }
            console.log("son");
        };
      

    相关文章

      网友评论

          本文标题:19-阻止事件冒泡

          本文链接:https://www.haomeiwen.com/subject/rfltaqtx.html