@0leg5ergeev
Самые глупые вопросы здесь задаю я

Как выполнить действие по клику ВНЕ определённой области?

т.е. есть у меня блоки .column3 и .column1, как задать действие, когда клик мимо них?
  • Вопрос задан
  • 350 просмотров
Решения вопроса 4
webirus
@webirus
Тыжверстальщик! Наверстай мне упущенное...
@iCat
Для этого необходимо при клике на .column1 или .column3 останавливать "всплывание" события, а функцию, которую надо выполнять при клике вне этих элементов, повесить на "верхний" элемент, например, на body, и внутри этой функции первым делом проверять, остановлено ли всплывание, и если остановлено, то прерывать выполнение функции.
function clickAnywhere (e) {
  if (e.isPropagationStopped()) return; // propagation was stopped, exiting
  // do if propagation was not stopped
  ..
}
$('body').on('click', clickAnywhere);
$('.column1, .column3').on('click', function(e) {
  e.stopPropagation();
});

Рабочий пример.
Ответ написан
customtema
@customtema
arint.ru
$(document).on('click', '*:not('.column1, .column3')', function() { do_smth(); });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы