Как сделать так, чтобы это всплывающее окно исчезло, когда я нажимаю снаружи? - PullRequest
3 голосов
/ 22 февраля 2011

http://jsfiddle.net/mnbayazit/by3zy/2/

Я хочу, чтобы всплывающее окно исчезало, когда я щелкаю где-то на фоне.Проблема в том, что он исчезает, когда я нажимаю [X] или само всплывающее окно.

Представьте, что это средство выбора календаря, если это проясняет мои намерения.

Как я могу получить егосделать это?

Ответы [ 2 ]

7 голосов
/ 22 февраля 2011
  1. Установите обработчик click для тела, чтобы удалить ваше всплывающее окно.

  2. Установите обработчик click для самого всплывающего окна, которое вызывает stopPropagation()на событие, чтобы предотвратить его пузыри до тела.

Примерно:

function showMyPopup(){
  ...
  $(myPopupDiv).click(function(e){
    e.stopPropagation();
  });
}
function closeMyPopup(){
  ...
}
$(document.body).click(closeMyPopup);
0 голосов
/ 22 февраля 2011

Основной jist с этой техникой состоит в том, чтобы иметь обертку (или независимый элемент со слоем z-index), который «захватывает» событие щелчка и скрывает элементы, которые вы хотите.Я обновил вашу скрипку с примером того, как это будет работать, за исключением того, что представьте, что элемент одеяла будет иметь высоту и ширину 100% (чтобы охватить весь видовой экран).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...