Anonim

Ja jūs programmējat Javascript, jūs, iespējams, esat saskāries ar situāciju, kad vēlaties, lai izvēlnes tiktu atvērtas ar klikšķi un tiktu aizvērtas, kad lietotājs noklikšķina ārpus izvēlnes. Esmu izstrādājis diezgan vienkāršu veidu, kā to izdarīt. Es pievienoju pasākuma klausītāju dokumenta pamattekstam. Kad kāds noklikšķina uz tā, mēs meklējam pasākuma mērķa ID. Ja tas atbilst lodziņa div ID, tad neko nedariet. Ja tā nenotiek, aizveriet izvēlni.

Paturot to nedaudz tālāk, ir neefektīvi atstāt klikšķu notikumu klausītāju uz visu ķermeni, kad tas netiek izmantots. Šajā gadījumā, ja izvēlne vēl nav atvērta, nav pamata klausīties klikšķi ārpus izvēlnes. Pievienojiet notikuma klausītāju parādītās divskaņas atzvanīšanai. Tādā pašā veidā, kad div tiek atkal paslēpts, noņemiet pasākuma klausītāju.

Rādīt Div noklikšķiniet melnajā lodziņā, nekas nenotiek. Noklikšķiniet ārpusē, tas pazūd $ ('# showbox'). Noklikšķiniet uz (function () {$ ('# bigbox'). Show (function () {document.body.addEventListener ('click', boxCloser, false);}) ;}); function boxCloser (e) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('click', boxCloser, false); $ ('# bigbox'). hide (); }}

Pārliecinieties, ka savā projektā esat iekļāvis arī jQuery, jo daži no iepriekšminētajiem līdzekļiem izmanto šo bibliotēku.

Aizveriet div vai izvēlni, noklikšķinot ārpus w / javascript