Javascript jquery调用另一个绑定事件中的事件

Javascript jquery调用另一个绑定事件中的事件,javascript,jquery,Javascript,Jquery,我有一个html,如下所示: <div class="parent"> <a href="#">parent</a> <div class="child">child</div> </div> 我想,如果单击“.child”div,则不应调用“div.parent”上绑定的事件。 如果我再次单击“.parent”div,则应执行其绑定事件 我试过以下方法- $('.child').on('click', fun

我有一个html,如下所示:

<div class="parent"> 
  <a href="#">parent</a>
  <div class="child">child</div>
</div>
我想,如果单击
“.child”
div,则不应调用
“div.parent”
上绑定的事件。 如果我再次单击
“.parent”
div,则应执行其绑定事件

我试过以下方法-

 $('.child').on('click', function(){
        alert('child div');
        $(this).parents('.parent').off('click');
        return false;
    });
但是上面的代码已经永久解除了父div上的
“click”
事件的绑定,
同样,它的click事件不会触发。

为什么不停止传播,以防止从child冒泡事件来实现这一点

$(document).ready(function(){
    $('.parent').on('click', function(){
        alert('parent div');
    });

    $('.child').on('click', function(ev){
        ev.stopPropagation();
        alert('child div');
    });
});

对。迪拉杰是对的。使用topPropagation()函数

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(){
    $('.parent').on('click', function(){
        alert('parent div');
        $('.child').click();
    });

    $('.child').on('click', function(e){
        e.stopPropagation()
        alert('child div');
    });
});

</script>

</head>
<body>

<div class="parent"> 
  <a href="#">parent</a>
  <div class="child">child</div>
</div>

</body>
</html>

在此处插入标题
$(文档).ready(函数(){
$('.parent')。在('click',function()上{
警报(“父分区”);
$('.child')。单击();
});
$('.child')。在('click',函数(e)上{
e、 停止传播()
警报(“子分区”);
});
});
小孩

单击子div后,事件会在DOM树中冒泡,这会导致父div被触发,现在要防止这种情况发生,您需要使用
event.stopPropagation()停止传播。
阅读有关它的详细信息

乔塔姆

有趣的问题。我在想子类。但是,由于div元素彼此包裹在一起,这是不可行的。因此,我建议使用以下函数切换响应,直到下次单击响应为止

makeParentReady=function(){
$('.parent')。在('click',function()上{
myClass=this.className;
警报(“父分区”);
});
}
$(文档).ready(函数(){
makeParentReady();
$('.child')。在('click',function()上{
myClass=this.className;
警报(“子分区”);
$(this).parents('.parent').off('click');
makeParentReady();
返回false;
});
});
请查看已回答的问题。
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script>
$(document).ready(function(){
    $('.parent').on('click', function(){
        alert('parent div');
        $('.child').click();
    });

    $('.child').on('click', function(e){
        e.stopPropagation()
        alert('child div');
    });
});

</script>

</head>
<body>

<div class="parent"> 
  <a href="#">parent</a>
  <div class="child">child</div>
</div>

</body>
</html>
 $('.child').on('click', function(event){
    event.stopPropagation();
    alert('child div');
    return false;
});