Ich würde gerne wissen, ob dies die richtige Art ist, sichtbare Elemente auszublenden, wenn Sie irgendwo auf der Seite klicken.
$(document).click(function (event) {
$('#myDIV:visible').hide();
});
Das Element (div, span usw.) sollte nicht verschwinden, wenn ein Klickereignis innerhalb der Grenzen des Elements auftritt.
jquery
events
event-bubbling
Franek
quelle
quelle
.myDiv
Element haben. Zum Beispiel, wenn Sie ein ausgewähltes Dropdown-Menü haben.myDiv
. Wenn Sie auf die Auswahl klicken, denken Sie, dass Sie außerhalb des Rahmens klicken.Versuche dies
Ich verwende den Klassennamen anstelle der ID , da Sie sich in asp.net um die zusätzlichen Dinge kümmern müssen, die .net an die ID anfügt
EDIT- Da Sie ein weiteres Stück hinzugefügt haben, würde es so funktionieren:
quelle
Ab jQuery 1.7 gibt es eine neue Möglichkeit, Ereignisse zu behandeln. Ich dachte, ich würde hier nur antworten, um zu demonstrieren, wie ich dies auf "neue" Weise tun könnte. Wenn nicht, empfehle ich Ihnen, die jQuery-Dokumente für die "on" -Methode zu lesen .
Hier missbrauchen wir die Selektoren von jQuery und sprudeln vor Ereignissen. Beachten Sie, dass ich den Ereignishandler anschließend bereinige. Sie können dieses Verhalten mit
$('.container').one
( siehe: docs ) automatisieren, aber da wir im Handler Bedingungen erfüllen müssen, die hier nicht anwendbar sind.quelle
Das folgende Codebeispiel scheint für mich am besten zu funktionieren. Während Sie 'return false' verwenden können, wird die gesamte Behandlung dieses Ereignisses für das div oder eines seiner untergeordneten Elemente gestoppt. Wenn Sie Steuerelemente für das Popup-Div haben möchten (z. B. ein Popup-Anmeldeformular), müssen Sie event.stopPropogation () verwenden.
quelle
Danke, Thomas. Ich bin neu bei JS und habe verrückt nach einer Lösung für mein Problem gesucht. Ihre hat geholfen.
Ich habe jquery verwendet, um ein Login-Feld zu erstellen, das nach unten rutscht. Für eine optimale Benutzererfahrung habe ich beschlossen, die Box verschwinden zu lassen, wenn der Benutzer auf eine andere Stelle als die Box klickt. Es ist mir ein bisschen peinlich, dass ich ungefähr vier Stunden gebraucht habe, um das zu beheben. Aber hey, ich bin neu bei JS.
Vielleicht kann mein Code jemandem helfen:
quelle
Was Sie auch tun können, ist:
Wenn Ihr Ziel kein Div ist, verbergen Sie das Div, indem Sie überprüfen, ob seine Länge gleich Null ist.
quelle
Ich habe das Folgende getan. Ich dachte daran zu teilen, damit auch jemand anderes davon profitieren könnte.
Lassen Sie mich wissen, ob ich jemandem dabei helfen kann.
quelle
div#newButtonDiv
nicht darauf geklickt wird. Ich würde empfehlen, dass Sie die zweite.click()
in Zeile 4 entfernen (wenn Sie dies tun, denken Sie daran, die schließenden Klammern, Klammern und das Semikolon - Zeile 9 zu entfernen).Versuche dies:
quelle
Eine andere Möglichkeit, das Container-Div auszublenden, wenn ein Klick in einem nicht untergeordneten Element erfolgt.
quelle
Hier ist #suggest_input in der Name des Textfelds und .suggest_container ist der Name der ul-Klasse und .suggest_div ist das Haupt-Div-Element für meinen automatischen Vorschlag.
Dieser Code dient zum Ausblenden der div-Elemente, indem Sie auf eine beliebige Stelle im Bildschirm klicken. Bevor Sie alles tun, verstehen Sie bitte den Code und kopieren Sie ihn ...
quelle
Versuchen Sie dies, es funktioniert perfekt für mich.
quelle
Aber Sie müssen auch diese Dinge berücksichtigen. http://css-tricks.com/dangers-stopping-event-propagation/
quelle
Hier ist eine funktionierende CSS / Small JS-Lösung, die auf der Antwort von Sandeep Pal basiert:
Probieren Sie es aus, indem Sie auf das Kontrollkästchen klicken und dann außerhalb des Menüs:
https://jsfiddle.net/qo90txr8/
quelle
Dies funktioniert nicht - es verbirgt die .myDIV, wenn Sie darauf klicken.
quelle
Nur 2 kleine Verbesserungen an den obigen Vorschlägen:
Stoppen Sie die Weitergabe des Ereignisses, das dies ausgelöst hat, vorausgesetzt, es handelt sich um einen Klick
quelle
quelle
quelle
quelle
Einfache Lösung: Verstecken Sie ein Element in einem Klickereignis außerhalb eines bestimmten Elements.
quelle