Anonim

Ако програмирате у Јавасцрипт-у, вероватно сте наишли на ситуацију у којој желите да се отворе менији који се отварају на клик, а затварају се када корисник кликне изван менија. Развио сам прилично једноставан начин да то учиним. Тело документа додајем слушаоца догађаја. Када га неко кликне, тражимо циљни ид догађаја. Ако се подудара са ИД-ом дивовске кутије, не предузимајте ништа. Ако то не успе, затворите мени.

Узимајући то мало даље, неефикасно је оставити слушаоца клика на целом телу када се не користи. У овом случају, ако мени још није отворен, нема разлога да слушате клик изван менија. Додајте слушаоца догађаја у повратни позив дива који се приказује. У том истом веку, када се див поново сакрије, уклоните слушаоца догађаја.

Прикажи Див Клик унутар црне кутије, ништа се не догађа. Кликни вани, нестаје $ ('# сховбок'). Кликни (функција () {$ ('# бигбок'). Схов (функција () {доцумент.боди.аддЕвентЛистенер ('клик', бокЦлосер, лажно);}) ;}); функција бокЦлосер (е) {иф (е.таргет.ид! = 'бигбок') {доцумент.боди.ремовеЕвентЛистенер ('клик', бокЦлосер, фалсе); $ ('# бигбок'). скрива (); }}

Обавезно укључите и јКуери у свој пројекат, јер нека од горе наведених функција користи ту библиотеку.

Затворите див или мени када кликнете изван в / јавасцрипта