Javascript jquery调用另一个绑定事件中的事件
我有一个html,如下所示: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
<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;
});