Here's a DEMO.Остановка распространения мышей/мышей из обработчика щелчков
У меня есть два 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'});
});
Это не представляется возможным. Что делает работу звонит .stopPropagation
из других mousedown
и mouseup
вызовов, как показано здесь (another DEMO):
$('#inner').on('mousedown', function(e) {
e.stopPropagation();
return false;
});
$('#inner').on('mouseup', function(e) {
e.stopPropagation();
return false;
});
Возможно, я уже ответил на свой вопрос, но я не уверен, что мой подход является лучшим . или наиболее разумными ли это правильный путь, чтобы остановить событие барботирования до mousedown
и mouseup
мм +1 для рефакторинга доброты. –
Следите за орфографическими ошибками - распространение! Спасибо за помощь. – Richard
@Richard Спасибо - исправлено! – Jeff