Jquery: как захватить событие щелчка, которое НЕ находится в области <div>? - PullRequest
2 голосов
/ 28 октября 2010

Я использую, чтобы реализовать всплывающее окно, используя zIndex ... все работает хорошо, но я хочу реализовать функцию, то есть когда пользователь щелкает любую область, находящуюся вне всплывающего окна, div будет закрыт, как сделать это?

Bin

Ответы [ 3 ]

2 голосов
/ 28 октября 2010
(function($){
   $.fn.outside = function(ename, cb){
      return this.each(function(){
         var $this = $(this),
              self = this;

         $(document).bind(ename, function tempo(e){
             if(e.target !== self && !$.contains(self, e.target)){
                cb.apply(self, [e]);
                if(!self.parentNode) $(document).unbind(ename, tempo);
             }
         });
      });
   };
}(jQuery));

Это код для копирования и вставки из

щелчок мышью где-то еще на странице (не для определенного элемента)

1 голос
/ 28 октября 2010

Вот пример использования Event.target (кросс-браузер).

http://jsbin.com/eqeto3/edit

1 голос
/ 28 октября 2010

Простой способ сделать это - покрыть страницу прозрачной (также может быть полностью прозрачной) маской, используя div.

Прикрепите обработчик click к этой маске div, чтобы закрыть всплывающее окно.

См. Пример здесь: http://www.sohtanaka.com/web-design/examples/modal-window/

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