Anonim

Kung nagprograma ka sa Javascript, malamang na tumakbo ka sa sitwasyon kung saan nais mong magkaroon ng mga menu na magbukas sa isang pag-click, at malapit iyon kapag nag-click ang gumagamit sa labas ng menu. Gumawa ako ng isang simpleng simpleng paraan upang gawin lamang iyon. Nagdagdag ako ng isang tagapakinig ng kaganapan sa katawan ng dokumento. Kapag may nag-click dito, hinahanap namin ang target id ng kaganapan. Kung tumutugma ito sa ID ng div ng kahon, pagkatapos ay wala. Kung hindi ito, isara ang menu.

Pagkuha ng kaunti pa, hindi sapat na mag-iwan ng isang tagapakinig ng kaganapan sa pag-click sa buong katawan kapag hindi ito ginagamit. Sa kasong ito, kung ang menu ay hindi pa binuksan, wala nang dahilan upang makinig para sa isang pag-click sa labas ng menu. Idagdag ang nakikinig sa kaganapan sa callback ng div na ipinapakita. Sa parehong ugat, kapag ang div ay nakatago muli, alisin ang nakikinig sa kaganapan.

Ipakita ang Div Click sa loob ng itim na kahon, walang mangyayari. Mag-click sa labas, nawawala ang $ ('# showbox'). I-click (function () {$ ('# bigbox'). Ipakita (function () {document.body.addEventListener ('click', boxCloser, false);}) ;}); function boxCloser (e) {kung (e.target.id! = 'bigbox') {document.body.removeEventListener ('click', boxCloser, maling); $ ('# bigbox'). itago (); }}

Tiyaking isama mo ang jQuery sa iyong proyekto dahil ang ilan sa pag-andar sa itaas ay gumagamit ng library na iyon.

Isara ang div o menu sa pag-click sa labas ng w / javascript