如果用户开始点击子<div>
,我会尝试阻止点击事件在父<div>
上触发,然后将鼠标从子<div>
移出,但不要离开父<div>
同时仍然按住它,然后在父母身上释放。
父母和孩子都有分配有event.stopPropagation()
的jquery点击事件。
如果我在最初按下鼠标的<div>
之外释放鼠标,那么根本没有点击事件被触发。
至少这是它适用于FF和Safari的工作方式,但不适用于Chrome。
按钮按照应有的方式工作,而不是。也许我可以从按钮中复制一些魔法并应用于div?
<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');
});
答案 0 :(得分:0)
你可以尝试绑定mousedown(),如果这样可以保持你想要的功能:
http://api.jquery.com/mousedown/
我在你的jsfiddle上尝试了它并且它有效。然而,你失去了完整的点击,你只得到了mousedown(可以说是“一半”)。
像这样:http://jsfiddle.net/zd7L68b2/4/
$('.inner').mousedown(function(e){
e.stopPropagation();
console.log('Clicked inner');
});