Anonim

Εάν προγραμματίζετε σε Javascript, πιθανότατα να τρέξετε την κατάσταση όπου θέλετε να έχετε μενού που ανοίγουν σε ένα κλικ και αυτό κλείνει όταν ο χρήστης κάνει κλικ εκτός του μενού. Έχω αναπτύξει έναν πολύ απλό τρόπο να το κάνουμε ακριβώς αυτό. Προσθέτω έναν ακροατή του γεγονότος στο σώμα του εγγράφου. Όταν κάποιος κάνει κλικ, αναζητούμε το αναγνωριστικό προορισμού του συμβάντος. Αν ταιριάζει με το αναγνωριστικό του div του κουτιού, τότε μην κάνετε τίποτα. Αν δεν συμβαίνει, κλείστε το μενού.

Λαμβάνοντας αυτό λίγο περισσότερο, είναι αναποτελεσματικό να αφήσετε έναν ακροατή ακροατηρίου κλικ σε ολόκληρο το σώμα όταν δεν χρησιμοποιείται. Σε αυτήν την περίπτωση, εάν το μενού δεν έχει ανοιχτεί ακόμα, δεν υπάρχει λόγος να ακούσετε ένα κλικ έξω από το μενού. Προσθέστε τον ακροατή της εκδήλωσης στην επιστροφή κλήσης του div που εμφανίζεται. Στο ίδιο πνεύμα, όταν το div διαγραφεί ξανά, αφαιρέστε τον ακροατή του συμβάντος.

Show Div Κάντε κλικ στο εσωτερικό του μαύρου πλαισίου, δεν συμβαίνει τίποτα. Κάντε κλικ έξω, εξαφανίζεται $ ('# showbox') κάντε κλικ (λειτουργία () {$ ('# bigbox')) show. ·}); (e) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('κλικ', boxCloser, false); $ ('# bigbox'). Απόκρυψη (); }}

Επίσης, βεβαιωθείτε ότι έχετε συμπεριλάβει το jQuery στο έργο σας καθώς ορισμένες από τις παραπάνω λειτουργίες χρησιμοποιούν αυτή τη βιβλιοθήκη.

Κλείστε το div ή το μενού για κλικ εκτός w / javascript