JQuery обработчик кликов для всего, кроме определенного объекта - PullRequest
3 голосов
/ 10 июля 2009

Как проверить наличие клика на всем, кроме определенного объекта?
Я использую (не), но я не уверен, как вызвать class / id всей страницы.

$(".page").not("#divInfoBox").click(function (event) {

}

Как правильно в HTML-коде указать page, так как у меня есть что-то вроде:

<html>
<body>
    <div class="page">  
    </div>
</body>
</html>

Что я вижу, так это: клик по верхней половине страницы работает; но в нижней части страницы, где нет ничего, кроме цвета фона, щелчок не регистрируется, потому что он находится «вне страницы» - как мне расширить его, чтобы щелчок работал везде?

Спасибо, Michael

Ответы [ 3 ]

10 голосов
/ 10 июля 2009

Попробуйте это:

$("body:not('#divInfoBox')").click(function (event) {

});

Прочитайте страницу документа для селектора not:

http://docs.jquery.com/Selectors/not

1 голос
/ 10 июля 2009

Вы можете добавить событие щелчка к элементу "html". Таким образом, вы получаете события, даже если вы «сошли» со страницы:

$("html").click( function() { ...  } );

Демо можно посмотреть здесь: http://jsbin.com/eguti

0 голосов
/ 10 июля 2009

твой скучающий); в конце должно быть так:

$(".page").not("#divInfoBox").click(function (event) {
    // do something
});

Что касается вашего вопроса, div 'page' не распространяется на нижнюю часть страницы, поэтому вам нужно зарегистрировать функцию для работы с тегом body.

Также похоже, что вы заставляете всплывающее окно появляться при нажатии на определенные вещи и исчезать при нажатии на боковую сторону. Я бы порекомендовал поискать плагин, который бы справился с этим для вас. Я знаю, что есть несколько. Лично мне нравится jqModal .

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