Скрытие тега div, когда пользователь нажимает вне тега div

У меня есть тег div, и я заполняю результаты поиска в пользовательской сетке, которая находится внутри этого тега.

Когда пользователь нажимает кнопку поиска, я отображаю результаты в вышеупомянутом теге div.

У меня есть требование закрыть вышеуказанный тег div, когда пользователь щелкает вне тега div.

Это похоже на Google поиск авто Comlete.

Заранее спасибо.

13.10.2009 10:40:05
ищете решение в javascript / jquery?
ukanth 13.10.2009 10:42:32
Мне нужно решение в JavaScript.
Madhu 30.03.2010 07:22:17
2 ОТВЕТА

Основная идея

  1. Подключите событие onclick к тегу body, чтобы скрыть div.
  2. Подключите событие onclick к тегу div и остановите его.

Смотрите порядок событий

Чтобы остановить событие

В модели Microsoft вы должны установить для свойства cancelBubble события значение true.

window.event.cancelBubble = true

В модели W3C вы должны вызвать метод stopPropagation () события.

e.stopPropagation()
1
30.03.2010 10:29:06
Спасибо за ответ. Я использую главную страницу asp.net и не могу использовать событие onclick body, как оно будет использоваться на многих других страницах контента. В то же время, как я могу найти HTML сгенерированный идентификатор для тега div, используемого в пользовательском контроле? Заранее спасибо
Madhu 13.10.2009 10:58:28
@Madhu: Как найти сгенерированный html-идентификатор для тега div: опубликуйте его как отдельный вопрос с примером исходного кода того, как он определен.
awe 13.10.2009 11:21:47
Извините за задержку с ответом. Как остановить всплывающее событие в JavaScript?
Madhu 30.03.2010 07:23:01

В jQuery что-то вроде этого:

$('body').click(function(ev){
  if (!$(this).hasClass('your_result_container_classname') {
    // code to hide result div
    $('body').unbind('click'); // remove event handler. add again when results shown.
  }
});
1
13.10.2009 10:45:57
Что происходит, когда пользователь щелкает внутри элемента в элементе div?
rahul 13.10.2009 10:48:19