Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Закрыть div по клику вне его пределов (https://javascript.ru/forum/dom-window/61970-zakryt-div-po-kliku-vne-ego-predelov.html)

armidow 18.03.2016 13:18

Закрыть div по клику вне его пределов
 
Привет. Есть функция по клику которой показывается и скрывается дополнительное меню на сайте:
var nav = {
  // Доп. меню шапка сайта
  showTM: function() {
    var openMenu = document.getElementById("openTM");
    var contentMenu = document.getElementById("dopMenuTop");
    if(openMenu){
      contentMenu.innerHTML = '<div class="absolute dop_menu_top" ><span id="sdfsdf"></span><nav><ul><li><a href="">' + js3 + '</a></li><li><a href="">' + js4 + '</a></li><li><a href="">' + js5 + '</a></li><li><a href="">' + js6 + '</a></li><li class="li"><div></div></li><li><a href="">' + js7 + '</a></li><li><a href="">' + js8 + '</a></li><li><a href="">' + js9 + '</a></li></ul></nav></div>';
      openMenu.classList.add("active");
	  openMenu.onclick = nav.clouseTM; 
    }
  }, 
  clouseTM: function() {
    var openMenu = document.getElementById("openTM");
    var contentMenu = document.getElementById("dopMenuTop");
    if(openMenu){
      contentMenu.innerHTML = '';
      openMenu.classList.remove("active");
      openMenu.onclick = nav.showTM;
    }		
  }
	
	
	
}

<ul class="flr dop_menu">
        <li class="relative"><a id="openTM" class="lio" onClick="nav.showTM(); return false;"></a>
        <div id="dopMenuTop"></div>
        </li>
        <li><a class="out"></a></li>
      </ul>

Вопрос как мне скрыть блок по клику за его пределами, например если пользователь кликнул по новой ссылке или в пустое поле?

Dilettante_Pro 18.03.2016 18:19

armidow,
Цитата:

Сообщение от armidow
Вопрос как мне скрыть блок по клику за его пределами, например если пользователь кликнул по новой ссылке или в пустое поле?

Клик по блоку за его пределами - очень абстрактное понятие. Там много чего может быть, в т.ч. и динамически появляющиеся элементы. Может, лучше его закрывать по onmouseout?


Часовой пояс GMT +3, время: 07:25.