需要帮助如何在jQuery中使用event.stopPropagation()

时间:2014-11-07 02:15:12

标签: javascript jquery stoppropagation

由于我是jQuery的新手,我想在我的脚本中使用event.stopPropagation()。

我以下列方式使用它:

this.$el.find(".activity_row").on("click", this.on_row_click, function (event){
                event.stopPropagation()
            });

我在“ activity_row ”下点击了另一个点击事件。因为我想知道event.stopPropagation(),但它不起作用!

请指导我如何使用它。

提前致谢

2 个答案:

答案 0 :(得分:1)

尝试:

this.$el.find(".activity_row").on("click", this.on_row_click, function (event){
               if (event.preventDefault)
                  event.preventDefault();
               if (event.stopPropagation)
                  event.stopPropagation();


            });

答案 1 :(得分:1)

我写了demo JsFiddel for your question here



$('.btn1').click(function(event){
    event.stopPropagation();
    alert('It is first btn');
});
$('.btn1').click(function(){
    alert('It is first btn');
});

$('.btn2').click(function(){
    alert('It is second btn');
});

$('.btn-container').click(function(){
    alert('It is btn container');
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="btn-container">
    <button class="btn1">Button</button>
    <button class="btn2">Button</button>
</div>
&#13;
&#13;
&#13;

在上面的代码中,您可以发现函数event.stopPropagation()只是阻止事件传播到外部DOM,因此当您点击btn1时,.btn-container中的事件赢了&#39}。被触发。

但是对于.btn1,如果您修改了上面代码中的两个事件处理程序,当您单击.btn1时,其中的所有事件处理程序都将被触发。