erkennen mouseup außerhalb der mousedown-element
Ich versuche zu erkennen, wenn das mouseup (Maustaste losgelassen) tritt außerhalb des Elements, die das mousedown-Ereignis ausgelöst wurde. Ich habe mehrere buttons, die ich verändern, die CSS (mit Klassen) mit einem mousedown (button drücken) und Abschluss klicken (mousedown+mouseup). Problem ist, dass wenn Sie klicken Sie auf das element, dann lassen Sie die Maustaste außerhalb des Elements, dass das mouseup-nicht ausgelöst. Ich habe auch versucht die Erfassung einer Allgemeinen "mouseup" - Ereignis auf das Dokument, um die "reset" - Klassen zugeordnet, um das element und das scheint nicht zu funktionieren.
Hier ist eine 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 benutze, um Geige mit dem element:
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 habe versucht, verschiedene Selektoren für die mouseup -- document, window, " Körper *', 'html ' und '' -- von dem, was ich sehe, scheint es, dass das mouseup-nicht feuern loslassen der Maustaste außerhalb des mousedown-element, weil die Ausschreibung nicht passieren.
InformationsquelleAutor Rob Emenecker | 2013-07-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Grund, dass dies nicht funktioniert, ist aufgrund der
anchor
element (dem scheint nicht so zu sein, dient einem Zweck). Sie können entfernen Sie diea
und ersetzen Sie es mit einemdiv
oderspan
oder was immer man möchte und dann diemouseup
Ereignis ausgelöst werden kann, die außerhalb des Elements.Dies scheint zu funktionieren für mich. http://jsfiddle.net/FXnsx/3/
Okay @Joe jetzt hier ist, wo ist es noch seltsamer. Ich geändert habe Sie Ihre JS-Fiddle-code, um mehr ähneln meine Struktur und der code funktioniert immer noch. Ich habe meine modifizierten code, um mehr eng an Ihr und mein code funktioniert immer noch nicht. Dies soll ein einfaches button-Effekt und ich bin mit jQuery, weil Internet Explorer nicht ordnungsgemäß umsetzen die :active-Pseudoklasse in einer Weise, die ich bekommen kann, es für mich zu arbeiten. Grr. Hier ist, was ich derzeit habe: jsfiddle.net/hairydogdigital/R6bq3/10
InformationsquelleAutor Joe
Wenn ich gut verstanden, Sie können mit dieser Art von Fang mouseup gesamte Dokument, und überprüfen Sie in, wenn das Ziel ist, oder nicht, dann entscheiden, was Sie wollen.
Hoffe, dass dies helfen.
InformationsquelleAutor QMaster