Ако програмирате в Javascript, вероятно сте се сблъскали със ситуацията, в която искате да имате менюта, които се отварят с едно кликване, и които се затварят, когато потребителят кликне извън менюто. Разработих доста прост начин да направя точно това. Добавям слушател на събитие в тялото на документа. Когато някой го кликне, търсим идентификационния номер на събитието. Ако съвпада с идентификатора на div полето, не правете нищо. Ако не стане, затворете менюто.
Като вземем това малко по-нататък, неефективно е да оставите слушател на събитие за кликване върху цялото тяло, когато то не се използва. В този случай, ако менюто все още не е отворено, няма причина да слушате щракване извън менюто. Добавете слушателя на събитието в обратния разговор на показания div. В същата вена, когато div се скрие отново, премахнете слушателя на събитието.
Покажи Div Щракнете вътре в черното поле, нищо не се случва. Щракнете навън, изчезва $ ('# showbox'). Щракнете (функция () {$ ('# bigbox'). Покажете (функция () {document.body.addEventListener ('щракнете', boxCloser, невярно);}) ;}); функция boxCloser (д) {if (e.target.id! = 'bigbox') {document.body.removeEventListener ('щракване', boxCloser, невярно); $ ( "# Bigbox") се скрие (.); }}
Също така не забравяйте да включите jQuery в проекта си, тъй като някои от функциите по-горе използват тази библиотека.
