用事件冒泡实现在div内点击,不触发事件,当在div外点击时才触发事件

Posted himonkey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用事件冒泡实现在div内点击,不触发事件,当在div外点击时才触发事件相关的知识,希望对你有一定的参考价值。

讲解

http://caibaojian.com/javascript-stoppropagation-preventdefault.html

使用案例

在div内点击,不触发 一个事件,当在div外点击时才触发事件。
这比按钮节流和缓冲都要好的多

  • 自己使用的是一个form控件中的输入不触发,当输入完点击其他地方时触发计算,将结果赋值给form中不可编辑的控件中。

具体代码:

function div10_onClick(event) {
    //点击#Click时要阻止冒泡,否则.pop是不显示的,
    //因为冒泡了,会执行到下面的方法。
    function stopPropagation(e) {
        var ev = e || window.event;
        if (ev.stopPropagation) {
            ev.stopPropagation();
        }
        else if (window.event) {
            window.event.cancelBubble = true;//兼容IE
        }
    }
    function jie() { // 点击其他地方时触发合计运算
        // 开始计算
        // 取统计表单的值
        
        ...
        ...
        ...
        
        // 可以再次绑定计算结果事件儿
        sumDivBindType = true;
        $(document).unbind('click', jie);
    
    }
    
    // 事件冒泡,并判断是否绑定,true时可以绑定
    stopPropagation(event);
    if(sumDivBindType == true) {
        sumDivBindType = false;
        $(document).bind('click', jie);
    }
}

以上是关于用事件冒泡实现在div内点击,不触发事件,当在div外点击时才触发事件的主要内容,如果未能解决你的问题,请参考以下文章

JS中点击事件冒泡阻止

JQuery阻止事件冒泡

jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。

事件 - 冒泡与捕获

DOM EventListener | 事件冒泡和事件捕获

高分!!!!JS,JQ冒泡事件