Here's a DEMO.Ngừng tuyên truyền của mousedown/mouseup từ trình xử lý nhấp chuột
Tôi có hai divs
, một bên trong và một bên ngoài:
<div id="outer">
<div id="inner"></div>
</div>
Với một số CSS để bạn có thể xem đó là đó:
#outer {
width: 250px;
height: 250px;
padding: 50px;
background: yellow;
}
#inner {
width: 250px;
height: 250px;
background: blue;
}
tôi cố gắng ngăn chặn lan truyền của mousedown
và mouseup
sự kiện từ trong trình xử lý click
như vậy:
$('#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'});
});
Điều này dường như không thể. Những gì hiện công việc đang kêu gọi .stopPropagation
từ bên trong mousedown
và mouseup
cuộc gọi khác, như ở đây (another DEMO):
$('#inner').on('mousedown', function(e) {
e.stopPropagation();
return false;
});
$('#inner').on('mouseup', function(e) {
e.stopPropagation();
return false;
});
Tôi đã có thể đã trả lời câu hỏi của riêng tôi, nhưng tôi không chắc chắn nếu cách tiếp cận của tôi là tốt nhất . hoặc hợp lý nhất đây có phải là cách đúng đắn để ngăn chặn một sự kiện bọt lên đến một mousedown
và mouseup
mm +1 để tái cấu trúc tốt đẹp. –
Xem ra các lỗi chính tả - tuyên truyền! Cảm ơn đã giúp đỡ. – Richard
@Richard Cảm ơn - đã sửa! – Jeff