简体   繁体   English

激发孩子的mousedown事件时如何停止父母的click事件

[英]How to stop a parent's click event when the child's mousedown event is fired

As described in the title, I want to stop a parent's click event when the child's mousedown event is fired. 如标题所述,当孩子的mousedown事件被触发时,我想停止父母的click事件。

My HTML code looks like this 我的HTML代码如下所示

<div class='parent'> 
       <div class='child'></div>
</div>

my jquery code looks like this 我的jQuery代码看起来像这样

 $('.child').mousedown(function(){
   //what can I write here to prevent parent's click event from fireing?
   //I've tried event.stopPropagation() as well as
   //event.stopImmediatePropagation() already 
   });

 $('.parent').on('click',function(){...})

Mouse events are triggered like this way 鼠标事件以这种方式触发

  1. MouseDown 鼠标向下

  2. Click 请点击

  3. MouseUp 鼠标向上

event.stopPropagation() in mousedown handler only affects on mousedown event. mousedown处理程序中的event.stopPropagation()仅影响mousedown事件。 You can try this workaround: 您可以尝试以下解决方法:

 var mdFaired = false; $('.parent').click(function(e) { if(!mdFaired) { var counter = $(this).children('.counter'); var count = parseInt(counter.text()); counter.text(++count); } else { mdFaired = false; } }); $('.child').mousedown(function(e) { e.stopPropagation(); mdFaired = true; var counter = $(this).children('.counter'); var count = parseInt(counter.text()); counter.text(++count); }); 
 div { border: 1px solid black; padding: 5px; } .parent { width: 300px; height: 300px; } .child { width: 50%; height: 50%; margin: 50px auto; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class='parent'> <span class="counter">0</span> <div class='child'> <span class="counter">0</span> </div> </div> 

e.stopPropagation();
e.preventDefault();

e is event passed from function call. e是从函数调用传递的事件。

Should do the trick. 应该做到的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 更改父级HTML时不会触发子级事件 - Child's event is not fired when parent's HTML is changed 当孩子的 onClick 被触发时触发向父级注册的 onKeyUp 事件 - Firing onKeyUp event registered with parent when child's onClick is fired 单击子控件单击时如何停止父gridview事件? - How to stop parent gridview event when click on child control click? 在React中,如何在父元素内的子元素中测试click事件 - In React, how to test the click event in child that's inside a parent element 在jquery中mousedown触发mouseup时停止事件 - stop an event upon mouseup fired by mousedown in jquery KnockoutJS - 在父标记中绑定子组件的单击事件 - KnockoutJS - binding child component's click event in parent's markup 触发点击事件时选择父项? - Selecting a parent when a click event is fired? 问题停止点击事件 Function 在鼠标按下事件 - Problem To Stop Click Event Function On Mousedown Event 链接点击事件被父mousedown事件阻止 - Link click event blocked by parent mousedown event 在ios的Safari浏览器中,当有一个“ onclick”内联孩子时,有一个“ onmouseover”内联父母时,为什么单击该孩子时触发了mouseover事件? - In safari of ios, when there is a “onclick” inline a child, and a “onmouseover” inline a parent, why mouseover event fired when click the child?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM