Próbuję wykryć, kiedy mouseup (przycisk myszy zwolniony) występuje poza elementem, który wywołał zdarzenie mousedown. Mam kilka przycisków, które zmieniam CSS (przy użyciu klas) z mousedown (naciśnięcie przycisku) i zakończenie kliknięcia (mousedown + mouseup). Problem polega na tym, że po kliknięciu elementu zwolnij przycisk myszy poza elementem, że mouseup nie uruchamia się. Próbowałem również przechwycić ogólne zdarzenie "mouseup" na dokumencie, aby "zresetować" klasy przypisane do elementu i to też nie działa.Wykrywanie mouseup poza mousedown elementu
Oto próbka HTML:
<div class="qbuttons">
<a id="qb_appointments" href="#" class="appointments"><div>
Schedule a Service<br />
Appointment</div></a>
</div>
Oto jQuery, że używam pobawić z elementem:
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 = "";
}
});
próbowałem różnych selektorów dla mouseUp - dokument , okno, "body *", "html " i "" - z tego, co widzę, wynika, że mouseup nie uruchamia się po zwolnieniu przycisku myszy poza elementem mousedown, ponieważ alert się nie pojawia.
Zorientowałeś się, że zdarzenia mousedown/mouseup nie działają w ten sposób, więc musisz wymyślić inny sposób robienia tego, co chcesz. Oto skrzypce do grania z -> http://jsfiddle.net/xQamz/ – adeneo