12
Here's a DEMO。停止從點擊處理程序傳播mousedown/mouseup
我有兩個divs
,內部和外部:
<div id="outer">
<div id="inner"></div>
</div>
有了一些CSS所以你可以看到它是:
#outer {
width: 250px;
height: 250px;
padding: 50px;
background: yellow;
}
#inner {
width: 250px;
height: 250px;
background: blue;
}
我試圖阻止的mousedown
和mouseup
事件傳播從click
處理器內如下:
$('#inner').on('click', function(e) {
e.stopPropagation();
$(this).css({'background': 'green'});
return false;
});
$('#outer').on('mousedown', function(e) {
$(this).css({'background': 'green'});
});
$('#outer').on('mouseup', function(e) {
$(this).css({'background': 'yellow'});
});
這似乎不可能。什麼工作是從其他mousedown
和mouseup
調用內調用.stopPropagation
,如下所示(another DEMO):
$('#inner').on('mousedown', function(e) {
e.stopPropagation();
return false;
});
$('#inner').on('mouseup', function(e) {
e.stopPropagation();
return false;
});
我可能已經回答了我自己的問題,但我不知道如果我的做法是最好的或者是最合理的,這是正確的方法來阻止事件冒泡達到mousedown
和mouseup
?
mm +1用於重構善良。 – 2012-01-16 02:07:19
注意拼寫錯誤 - 傳播!謝謝您的幫助。 – Richard 2015-03-12 01:40:36
@Richard謝謝 - 修好了! – Jeff 2015-03-12 07:08:33