jQuery löst ein Ereignis aus, wenn außerhalb des Elements geklickt wird
$(document).click(function(evt) {
var target = evt.currentTarget;
var inside = $(".menuWraper");
if (target != inside) {
alert("bleep");
}
});
Ich versuche herauszufinden, wie man es so machen, dass wenn ein Benutzer auf eine Stelle außerhalb eines bestimmten div (menuWraper), es löst ein Ereignis aus.. ich merkte, ich kann nur jeden Klick ein Ereignis auslösen, dann überprüfen Sie, ob der angeklickte currentTarget ist dasselbe wie das ausgewählte Objekt aus $(".menuWraper"). Aber so funktioniert das nicht, currentTarget, die das HTML-Objekt(?) und $(".menuWraper") ist eine Objekt-Objekt? Ich bin sehr verwirrt.
InformationsquelleAutor der Frage tpae | 2010-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen nur Ihre
menuWraper
element nennenevent.stopPropagation()
so, dass der click-event nicht Blase bis zu dendocument
.Probieren Sie es aus: http://jsfiddle.net/Py7Mu/
Alternativ könnte man
return false;
anstattevent.stopPropagation();
InformationsquelleAutor der Antwort user113716
wenn Sie child-Elemente wie dropdown-Menüs
InformationsquelleAutor der Antwort Alexey Sukhikh
Die häufigste Anwendung ist hier schließen bei Klick auf das Dokument, nicht aber, wenn es kam, von diesem element, für das Sie möchten, stoppen Sie die Blasen, wie diese:
Alle hier machten verhindert, dass das klicken von sprudeln (über
- Ereignis.stopPrpagation()
) wenn es innerhalb eines.menuWrapper
element. Wenn diese nicht passieren, das klicken kam von irgendwo anders, und wird standardmäßig machen es so bis zudocument
, wenn er dort ankommt, verstecken wir diese.menuWrapper
Elemente.InformationsquelleAutor der Antwort Nick Craver
versuchen Sie, diese..
InformationsquelleAutor der Antwort rob waminal
Ich weiß, dass die Frage beantwortet wurde, aber ich hoffe, meine Lösung hilft anderen Menschen.
stopPropagation
verursacht Probleme in meinem Fall, denn ich brauchte dieclick
Ereignis-für etwas anderes. Außerdem, nicht jedes element sollte dazu führen das div geschlossen werden, wenn auf Sie geklickt wird.Meine Lösung:
http://jsfiddle.net/NLDu3/
InformationsquelleAutor der Antwort edjroot
Diesem code öffnet sich das Menü in Frage, und setup wird ein click-Ereignis-listener. Wenn ausgelöst, es wird eine Schleife durch die target-id ' s Eltern, bis er eine findet die Menü-id. Wenn das nicht der Fall, wird das Menü ausblenden, da der Benutzer geklickt hat, außerhalb des Menüs. Ich habe es getestet und es funktioniert.
InformationsquelleAutor der Antwort Baz Love
Ich denke nicht das Dokument löst das click-Ereignis. Versuchen Sie es mit dem body-element zu erfassen, das click-Ereignis. Möglicherweise müssen Sie check auf, dass...
InformationsquelleAutor der Antwort iWantSimpleLife
versuchen, diese
InformationsquelleAutor der Antwort Muhammad Usman
InformationsquelleAutor der Antwort Jack Vo
InformationsquelleAutor der Antwort ghazizadeh