jQuery click () событие ловит все? - PullRequest
       17

jQuery click () событие ловит все?

12 голосов
/ 21 сентября 2010

мы показываем на экране поле, которое я хочу скрыть, когда пользователь нажимает в любом месте экрана, включая тело, якоря, элементы div, кнопки и т. Д. ... Есть ли селектор, который может обработать это для меня?Или это случай $('body, a, div, input').click()?

Ответы [ 2 ]

25 голосов
/ 21 сентября 2010

Вы можете сделать это следующим образом:

$(document).click(function() {
  $("#boxID").hide();
});

Поскольку click события по умолчанию будут всплывать до document, это «поймать все»подход ... если вы не хотите, чтобы щелчки из внутри окна закрывали его, добавьте .stopPropagation() вызов этих click событий, подобныхэто:

$("#boxID").click(function(e) {
  e.stopPropagation();
});
1 голос
/ 21 сентября 2010

Вы можете просто привязать к событию click элемента документа. Попробуйте в http://jsfiddle.net/ZqEbY/.

...