Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.10.2015, 18:07
Интересующийся
Отправить личное сообщение для ekkl-82 Посмотреть профиль Найти все сообщения от ekkl-82
 
Регистрация: 09.11.2013
Сообщений: 17

jQuery off() и on()
Хочу немного разобраться с обработчиками событий
$(document).on('click','a', function(e) {
  console.log('Clicked....');
  e.prevenDefault();
}
Этот код блокирует все ссылки на странице. Дальше, если поместить:
$(document).off('click','a.enable')
По идее, это долно разблокировать ссылки с установленным классом enable
Но, похоже, этого не происходит.
1) Это нормальное поведение? Пробовал и с jQuery и с Zepto.
2) По документации можно узнать, что off() нужно вызывать с теми параметрами, что и on(). Тогда какой путь существует для разрешение подобной проблемы?
---
PS. Вообще стоит пользоваться Zepto? Тот же jQuery намного больше, это раз, во-вторых Zepto проще, поскольку имеет меньше неиспользуемых наворотов.
Ответить с цитированием
  #2 (permalink)  
Старый 18.10.2015, 18:46
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от ekkl-82
По идее, это долно разблокировать ссылки с установленным классом enable
не должно, слежение за ссылками осталось прежним.
Сообщение от ekkl-82
prevenDefault
чего-то нехватает.
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
    $(document).on("click", "a", function(e) {
        e.preventDefault();
        alert("Clicked....")
    });
    $(document).off("click", "a");
    $(document).on("click", "a:not(.enable)", function(e) {
        e.preventDefault();
        alert("Clicked....")
    })
});


  </script>
</head>

<body>
 <a href="http://www.yandex.ru/" title="yandex" class="yandex">yandex</a>
 <a href="http://javascript.ru/forum/" title="forum" class="enable">forum</a>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 18.10.2015, 18:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

ekkl-82, используйте в таких случаях пространства имен.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический подсчет в таблице muraig jQuery 5 11.10.2014 16:54
Jquery ui-slider & Jquery selectbox, Слайдер срабатывает всего 1 раз Micher jQuery 4 31.01.2014 13:07
хочу инвайт на хабр macdack Оффтопик 45 28.07.2013 23:18
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16