Wenn Sie in Javascript programmieren, stoßen Sie wahrscheinlich auf die Situation, in der Menüs bei einem Klick geöffnet und geschlossen werden sollen, wenn der Benutzer außerhalb des Menüs klickt. Ich habe einen ziemlich einfachen Weg entwickelt, um genau das zu tun. Ich füge dem Dokumentkörper einen Ereignis-Listener hinzu. Wenn jemand darauf klickt, suchen wir nach der Ziel-ID des Ereignisses. Wenn es mit der ID des div der Box übereinstimmt, dann nichts tun. Wenn nicht, schließen Sie das Menü.
Wenn Sie das etwas weiter ausführen, ist es ineffizient, einen Klickereignis-Listener auf dem gesamten Körper zu belassen, wenn er nicht verwendet wird. In diesem Fall gibt es keinen Grund, auf einen Klick außerhalb des Menüs zu warten, wenn das Menü noch nicht geöffnet wurde. Fügen Sie den Ereignis-Listener im Rückruf des angezeigten Div hinzu. Entfernen Sie auf die gleiche Weise den Ereignis-Listener, wenn das Div wieder ausgeblendet wird.
Show Div Klicken Sie in die Blackbox, es passiert nichts. Klicken Sie nach draußen, es verschwindet $ ('# showbox'). Klicken Sie auf (function () {$ ('# bigbox'). ;}); Funktion boxCloser (e) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('click', boxCloser, false); $ ('# bigbox'). hide (); }}
Stellen Sie außerdem sicher, dass Sie jQuery in Ihr Projekt aufnehmen, da einige der oben genannten Funktionen diese Bibliothek verwenden.
