Lukk Div ​​eller Meny på Klikk utenfor med Javascript

Hvis du noen gang har jobbet med menyer som åpnes på klikk, men vil at de skal lukkes når en bruker klikker utenfor menyområdet, er det en ganske enkel måte å gjøre det på. Jeg legger til en hendelselytter i dokumentets kropp. Når noen klikker på det, ser vi etter arrangementets mål-ID. Hvis det samsvarer med IDen til boksens div, gjør du ingenting. Hvis ikke, lukk menyen.

Tar det litt lenger, er det ineffektivt å forlate en klikkhendelselytter på hele kroppen når den ikke blir brukt. I dette tilfellet, hvis menyen ikke har blitt åpnet ennå, er det ingen grunn til å lytte etter et klikk utenfor menyen. Legg til hendelseslytteren i tilbakekallingen av diven som vises. I samme vene, når div blir gjemt igjen, fjern hendelseslytteren.

 Vis Div Klikk i den svarte boksen, ingenting skjer. Klikk utenfor, det forsvinner $ ('# showbox'). Klikk (funksjon () {$ ('# bigbox'). Vis (funksjon () {document.body.addEventListener ('klikk' ;}); funksjonsboksCloser (e) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('click', boxCloser, false); $ ( '# Bigbox') skjule (.); }} 

Se arbeidseksempel

Pass også på at du inkluderer jQuery, siden noen av funksjonene ovenfor bruker biblioteket.

Se Også