Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.06.2013, 16:04
clb clb вне форума
Новичок на форуме
Отправить личное сообщение для clb Посмотреть профиль Найти все сообщения от clb
 
Регистрация: 06.06.2013
Сообщений: 3

Как сделать скрытие блока при клике на фон?
Вот такой код сейчас используется
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;
}


Подскажите как сделать чтобы при клике на фон, скрывался блок? Или подскажите другой простой код чтобы сделать выпадающий блок с закрытием при нажатии на фон и ссылку. Без подключения дополнительных библиотек.
Ответить с цитированием
  #2 (permalink)  
Старый 06.06.2013, 16:50
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

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

И не ленись сделать тестовый пример...
Ответить с цитированием
  #3 (permalink)  
Старый 07.06.2013, 23:58
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

вешай обработчик на документ и смотри event.target: если это не тот элемент, который нужно скрыть, то скрывай его
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2013, 17:35
clb clb вне форума
Новичок на форуме
Отправить личное сообщение для clb Посмотреть профиль Найти все сообщения от clb
 
Регистрация: 06.06.2013
Сообщений: 3

Не подскажите код? Тестового примера нет, так как не знаю как реализовать
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2013, 22:51
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

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
__________________
★ ²º¹³ ☆
Ответить с цитированием
  #6 (permalink)  
Старый 11.06.2013, 15:45
clb clb вне форума
Новичок на форуме
Отправить личное сообщение для clb Посмотреть профиль Найти все сообщения от clb
 
Регистрация: 06.06.2013
Сообщений: 3

Этот код нужно использовать вместо кода из первого сообщения?
Ответить с цитированием
  #7 (permalink)  
Старый 11.06.2013, 18:03
Аватар для Hekumok
Отправить личное сообщение для Hekumok Посмотреть профиль Найти все сообщения от Hekumok
 
Регистрация: 04.06.2012
Сообщений: 513

clb, этот скрипт скрывает элемент при клике на "фон". Где его использовать решайте сами
__________________
★ ²º¹³ ☆

Последний раз редактировалось Hekumok, 11.06.2013 в 18:05.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что при получении фокуса элемент div был полностью виден на эране kraw Events/DOM/Window 2 06.02.2012 23:42
Можно ли как то выделить текст в блоке при клике по блоку? someLogin Элементы интерфейса 1 10.10.2011 05:10
как на javascript сделать что-б при на жатии на стрелочки, в низ- в верх verstun Общие вопросы Javascript 1 06.10.2011 21:19
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21
Как сделать фон, главной страницы на изображении ? asked86 (X)HTML/CSS 3 03.04.2009 02:54