мы показываем окно на экране, которое я хочу скрыть, когда пользователь щелкает в любом месте экрана, включая тело, якоря, divs, кнопки и т.д. Есть ли селектор, который может справиться с этим для меня? Или это случай $('body, a, div, input').click()
?
JQuery click() событие catch-all?
Ответ 1
Вы можете сделать это следующим образом:
$(document).click(function() {
$("#boxID").hide();
});
Поскольку события click
по умолчанию будут пузырьки вверх до document
, это подход "поймать все"..Если вы не хотите кликов изнутри, чтобы закрыть его, добавьте .stopPropagation()
на те события click
, как это:
$("#boxID").click(function(e) {
e.stopPropagation();
});
Ответ 2
Вы можете просто привязать событие click элемента документа. Попробуйте в http://jsfiddle.net/ZqEbY/.