Javascript 如果单击开始于子div,结束于父div,如何防止单击事件(Chrome bug)
我试图阻止单击事件在父对象上触发,如果用户开始单击子对象,然后将鼠标移出子对象,但在按住鼠标的同时不离开父对象,然后在父对象上释放鼠标 父级和子级都为jquery click事件分配了Javascript 如果单击开始于子div,结束于父div,如何防止单击事件(Chrome bug),javascript,jquery,google-chrome,javascript-events,Javascript,Jquery,Google Chrome,Javascript Events,我试图阻止单击事件在父对象上触发,如果用户开始单击子对象,然后将鼠标移出子对象,但在按住鼠标的同时不离开父对象,然后在父对象上释放鼠标 父级和子级都为jquery click事件分配了event.stopPropagation() 如果我在最初按下鼠标的区域外释放鼠标,则不会触发任何单击事件 至少它在FF和Safari上是这样工作的,但在Chrome上不是这样 按钮可以正常工作,而div不能。也许有一些魔法我可以从按钮上复制并应用到div上 $('.outer')。单击(函数(e){ log
event.stopPropagation()
如果我在最初按下鼠标的
区域外释放鼠标,则不会触发任何单击事件
至少它在FF和Safari上是这样工作的,但在Chrome上不是这样
按钮可以正常工作,而div不能。也许有一些魔法我可以从按钮上复制并应用到div上
$('.outer')。单击(函数(e){
log('Clicked outer');
});
$('.outer').moused(函数(e){
log('Clicked outer');
});
$('.inner')。单击(函数(e){
e、 停止传播();
log(“单击内部”);
});
您可以尝试绑定mousedown(),如果这样可以保持您想要的功能:
我在你的JSFIDLE上试过了,效果很好。然而,你失去了完整的点击,你得到的只是鼠标下降(“半”点击)
像这样:
不幸的是,我需要点击事件
<div class="outer">
<button class="inner">
</button>
<div class="inner">
</div>
</div>
$('.outer').click(function(e){
console.log('Clicked outer');
});
$('.outer').moused(function(e){
console.log('Clicked outer');
});
$('.inner').click(function(e){
e.stopPropagation();
console.log('Clicked inner');
});
$('.inner').mousedown(function(e){
e.stopPropagation();
console.log('Clicked inner');
});