Я пытаюсь обнаружить, когда мышь (кнопка мыши выпущена) происходит вне элемента, в который был запущен событие mousedown. У меня есть несколько кнопок, которые я изменяю CSS (используя классы) с mousedown (нажатие кнопки) и завершение щелчка (mousedown + mouseup). Проблема в том, что если вы нажмете на элемент, отпустите кнопку мыши за пределами элемента, чтобы мышь не срабатывала. Я также попытался захватить общее событие «mouseup» в документе, чтобы «сбросить» классы, назначенные этому элементу, и это тоже не работает.обнаружить мышь за пределами элемента mousedown
Вот пример HTML:
<div class="qbuttons">
<a id="qb_appointments" href="#" class="appointments"><div>
Schedule a Service<br />
Appointment</div></a>
</div>
Вот JQuery, который я использую, чтобы возиться с элементом:
var current_qbutton = "";
$('.qbuttons a').mousedown(function() {
current_qbutton = $(this).attr('id');
$(this).addClass('active');
});
$('.qbuttons a').click(function() {
$(this).removeClass('active');
});
$('*').mouseup(function(event) {
event.stopPropagation();
alert(current_qbutton);
if(current_qbutton != "") {
$('#' + current_qbutton).removeClass('active');
current_qbutton = "";
}
});
Я пробовал разные селекторы для MouseUp - документ , window, 'body *', 'html ' и '' - из того, что я вижу, кажется, что мышь не стреляет при выпуске кнопки мыши вне элемента mousedown, потому что предупреждения не происходит.
Вы поняли это, события mousedown/mouseup не работают таким образом, поэтому вам придется выяснить какой-то другой способ сделать то, что вы пытаетесь сделать. Вот скрипка для игры -> http://jsfiddle.net/xQamz/ – adeneo