美文网首页
jq事件冒泡

jq事件冒泡

作者: zhaodadaya | 来源:发表于2018-09-25 19:55 被阅读0次

什么是事件冒泡

在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。

事件冒泡的作用

事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上),它还可以让你在对象层的不同级别捕获事件。
表现事件冒泡的代码

<body> 
    <div id="divOne" onclick="alert('我是最外层');"> 
        <div id="divTwo" onclick="alert('我是中间层');"> 
            <a id="hr-three" href="http://www.baidu.com"mce_href="http://www.baidu.com" onclick="alert('我是最里层!')"> 
            点击我 
            </a> 
        </div> 
    </div> 
</body>


从这个代码就可以看出事件冒泡的过程,只点击了“点击我”,就会依次弹出“我是最里层—->我是中间层—->我是最外层—->然后再链接到百度. ”,本来只点击ID为hr_three的标签,但执行了三个alert的操作;过程:hr_three—->divTwo—->divOne。从最里层冒泡到最外层。

四种阻止冒泡的方法

  1. even.stopPropagation();
<script src="jquery-1.10.1.min.js"></script>
<script>
    $(function(){
        $("#hr_three").click(function(event){
            event.stopPropagation();
        });
    });
</script>

even.stopPropagation():终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。 此时点击“点击我”,就阻止了事件冒泡,但不会阻止默认行为,会弹出“我是最里层”,然后链接到百度

  1. return false;
<script src="jquery-1.10.1.min.js"></script>
<script>
    $(function(){
        $("#hr_three").click(function(event){
            return false;
        });
    });
</script>

点击“点击我”,会弹出“我是最里层”,但不会链接到百度 作用是:事件处理过程中,阻止了事件冒泡,也阻止了默认行为(比如刚才它就没有执行超链接的跳转)

  1. event.preventDefault();
<script src="jquery-1.10.1.min.js"></script>
<script>
    $(function(){
        $("#hr_three").click(function(event){
            event.preventDefault();
        });
    });
</script>

点击“点击我”,会发现它依次弹出:我是最里层—->我是中间层—->我是最外层,但最后却没有跳转到百度 作用是:事件处理过程中,不阻击事件冒泡,但阻击默认行为(它只执行所有弹框,却没有执行超链接跳转) 注:一个事件起泡对应触发的是上层的同一事件 如果在click事件中,在你要处理的事件之前加上e.preventDefault();那么就取消了行为(通俗理解:相当于做了个return操作),不执行之后的语句了。

相关文章

  • jq事件冒泡

    什么是事件冒泡 在一个对象上触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事...

  • 环游JQ历险记:锋利与权威笔记(二)

    这次分享的是JQ的事件、冒泡 这篇文章讲了 事件冒泡以及委托,书中的几种事件(bind、unbind、one、ho...

  • JQ-事件冒泡

  • 冒泡委托

    冒泡定义:点击子组件会触发父组件事件,所有父组件,先子一层一层到父。 jq阻止冒泡有3种方法: 1, event....

  • 微信小程序中bind和catch的区别

    bindtap 冒泡事件,事件绑定不会阻止冒泡事件向上冒泡catchtap 非冒泡事件, 事件绑定阻止冒泡事件...

  • 冒泡委托

    冒泡定义:点击子组件会触发父组件事件,所有父组件,先子一层一层到父。1 jq阻止冒泡有3种方法:1, event....

  • 冒泡和事件委托

    冒泡定义:点击子组件会触发父组件事件,所有父组件,先子一层一层到父。1 jq阻止冒泡有3种方法: 1, event...

  • jq初始,选择器,事件,内容操作,样式操作

    jq初始 jq选择器 jq事件 jq内容操作 jq样式操作

  • 事件绑定 和 方法传值

    冒泡和非冒泡事件绑定 bindtap: 冒泡事件绑定 catchtap: 非冒泡事件绑定当其他的事件冒泡到当前元素...

  • jquery的基本操作

    1、jq中的hover事件(移入/移除)写法参照: 2、jq中的阻止默认事件; ** 3、jq中的阻止事件传递(防...

网友评论

      本文标题:jq事件冒泡

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