Ich versuche zu erkennen, wenn das mouseup (Maustaste losgelassen) außerhalb des Elements auftritt, an dem das mousedown-Ereignis ausgelöst wurde. Ich habe mehrere Buttons, mit denen ich das CSS (durch Verwendung von Klassen) mit einem Mouse-Down (Tastendruck) und Abschluss eines Klicks (Mouse-Down + Mouse-Up) verändere. Problem ist, dass, wenn Sie auf das Element klicken und dann die Maustaste außerhalb des Elements loslassen, der Mouse-Up nicht ausgelöst wird. Ich habe auch versucht, ein allgemeines "mouseup" -Ereignis auf dem Dokument zu erfassen, um die dem Element zugewiesenen Klassen "zurückzusetzen", und das scheint auch nicht zu funktionieren.detect mouseup außerhalb von mousedown element
Hier ein Beispiel HTML:
<div class="qbuttons">
<a id="qb_appointments" href="#" class="appointments"><div>
Schedule a Service<br />
Appointment</div></a>
</div>
Hier ist die jQuery, die ich mit dem Element zur Geige bin mit:
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 = "";
}
});
ich verschiedene Selektoren für die mouseup versucht haben - Dokument , Fenster, 'Körper *', 'html ' und '' - von dem, was ich sehe, scheint es, dass der MouseUp nicht auf die Freigabe der Maustaste außerhalb des MouseDown-Elements ausgelöst wird, weil die Warnung nicht passiert.
Sie haben es herausgefunden, die mousedown/mouseup Ereignisse funktionieren nicht auf diese Weise, also müssen Sie einen anderen Weg finden, um zu tun, was auch immer Sie versuchen zu tun. Hier ist eine Geige zum spielen -> http://jsfiddle.net/xQamz/ – adeneo