Задать вопрос
@ivadfox

Как скрыть div по клику в любое место?

Есть вот такой код, работает, но необходимо сделать так, что бы div скрывался по клику в любое место, а не только по той же ссылке. Должно быть применимо к нескольким div'ам.
Сам разбираюсь плохо, поэтому очень прошу предоставить полностью в готовом виде.
<script type="text/javascript">

            function showHide(element_id) {
                //Если элемент с id-шником element_id существует
                if (document.getElementById(element_id)) { 
                    //Записываем ссылку на элемент в переменную obj
                    var obj = document.getElementById(element_id); 
                    //Если css-свойство display не block, то: 
                    if (obj.style.display != "block") { 
                        obj.style.display = "block"; //Показываем элемент
                    }
                    else obj.style.display = "none"; //Скрываем элемент
                }
                //Если элемент с id-шником element_id не найден, то выводим сообщение
                else alert("Элемент с id: " + element_id + " не найден!"); 
            }   
</script>


<a href="javascript:void(0)" onclick="showHide('block_id')">Open_block</a></li>
  • Вопрос задан
  • 1690 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
HiNeX
@HiNeX
Web Developer
document.addEventListener("click", function (e) {
  var level = 0;
  for (var element = e.target; element; element = element.parentNode) {
    if (element.id === 'x') {
      document.getElementById("out").innerHTML = (level ? "inner " : "") + "x clicked";
      return;
    }
    level++;
  }
  document.getElementById("out").innerHTML = "not x clicked";
});


stackoverflow.com/questions/14188654/detect-click-...

document.addEventListener("click", function (e) {
  for (var element = e.target; element; element = element.parentNode) {
    if (element.id === 'block_id') {
      return;
    }
  }
    
  var obj = document.getElementById('block_id'); 
  if (obj.style.display == "block") 
    obj.style.display = "none"; 
});
Ответ написан
swipeshot
@swipeshot
Учусь на ошибках.
onclick="this.style.display='none'"
Не?
Ответ написан
Homchenkokostya
@Homchenkokostya
Если на jQuery
$( document ).on( 'click', function( event ) {
    if ( !$( event.target ).hasClass( 'div_class' ) ) {
        $( '.div_clas' ).hide()
    }
})
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы