Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.01.2012, 07:46
Новичок на форуме
Отправить личное сообщение для Emil Посмотреть профиль Найти все сообщения от Emil
 
Регистрация: 06.01.2012
Сообщений: 2

Помогите отловить собыие клика на любом участке сайта кроме заданного блока
например есть блок
<div class="click">Хайдук</div>
нужно отловить событие по любому участку сайта кроме данного блока,

такое реализовано например на фейсбуке в уведомлениях рядом с логотипом с фейсом.
Ответить с цитированием
  #2 (permalink)  
Старый 06.01.2012, 12:31
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

способ 1)
// включаем обработчик в разрешённой зоне
$("#haiduk").mouseout(function(){
      $("body").on("click",onClick);
});
// выключаем обработчик в запрещённой зоне
$("#haiduk").mouseover(function(){
      $("body").off("click",onClick);
})

// обработчик
function onClick(){
     alert ("Не кликай, кликуном станешь");
}

способ 2) (самый надёжный)
получаем координаты запрещённой области метод $("#haiduk").offset()
при щелчке мыши смотрим не находиться ли курсор в запрещённой зоне
если не находиться то всё окей, делаем чего нибудь полезное
Если находиться, неделаем нечего
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 06.01.2012 в 12:40.
Ответить с цитированием
  #3 (permalink)  
Старый 10.11.2012, 17:40
Новичок на форуме
Отправить личное сообщение для naxel Посмотреть профиль Найти все сообщения от naxel
 
Регистрация: 10.11.2012
Сообщений: 1

Сообщение от Emil Посмотреть сообщение
например есть блок
<div class="click">Хайдук</div>
нужно отловить событие по любому участку сайта кроме данного блока,

такое реализовано например на фейсбуке в уведомлениях рядом с логотипом с фейсом.
$(document).on("click", function () {
    console.log('click!');
});

$('.click').on("click", function (e) {
    if (e.stopPropagation) {
        e.stopPropagation()
    } else {
        e.cancelBubble = true
    }
});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск