Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как сделать скрытие блока при клике на фон? (https://javascript.ru/forum/dom-window/38558-kak-sdelat-skrytie-bloka-pri-klike-na-fon.html)

clb 06.06.2013 16:04

Как сделать скрытие блока при клике на фон?
 
Вот такой код сейчас используется
function openbox(id)
{
if(document.getElementById(id).style.display=='none') {
    document.getElementById(id).style.display = 'block';
  } else {
    document.getElementById(id).style.display = 'none';
  }
  return false;
}


Подскажите как сделать чтобы при клике на фон, скрывался блок? Или подскажите другой простой код чтобы сделать выпадающий блок с закрытием при нажатии на фон и ссылку. Без подключения дополнительных библиотек.

ksa 06.06.2013 16:50

Цитата:

Сообщение от clb
при клике на фон

На "фон" кликнуть нельзя... кликнуть можно только на некий элемент ДОМ-модели...

И не ленись сделать тестовый пример...

Hekumok 07.06.2013 23:58

вешай обработчик на документ и смотри event.target: если это не тот элемент, который нужно скрыть, то скрывай его

clb 08.06.2013 17:35

Не подскажите код? Тестового примера нет, так как не знаю как реализовать

Hekumok 08.06.2013 22:51

var el = document.getElementById(id) ; // нужный элемент
document.addEventListener("click", function close(e) {
  if(e.target == el)
    return ;
  el.style.display = "none" ;
  this.removeEventListener("click", close, false) ;
}, false) ;

P.S. В ишаке нужно делать через attachEvent/detachEvent

clb 11.06.2013 15:45

Этот код нужно использовать вместо кода из первого сообщения?

Hekumok 11.06.2013 18:03

clb, этот скрипт скрывает элемент при клике на "фон". Где его использовать решайте сами


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