Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2016, 18:58
Аватар для sash003
Аспирант
Отправить личное сообщение для sash003 Посмотреть профиль Найти все сообщения от sash003
 
Регистрация: 23.10.2014
Сообщений: 72

Не получается снять обработчик
Всем привет. Решил вот попробовать свои силы и написать jQuery-плагин для открытия картинок в модальном окне.
Проблема как всегда возникла на самом последнем этапе: захотел сделать чтобы при прокрутке колесом мыши менялись картинки. Сделал, но вместе с картинками прокручивается и вся страница за модальным окном.. Пробую навешивать и снимать обработчики при закрытии, не получается снять. Подскажите, пожалуйста
// вешаю
$(window).on('DOMMouseScroll mousewheel', function(e){
        imgOnScroll(e);
});
// пытаюсь снять 
$(window).off('DOMMouseScroll mousewheel', function(e){
        imgOnScroll(e);
});   

var imgOnScroll = function(e){
            window.preventdefault(e);
            var evt = e.originalEvent ? e.originalEvent : e,
            delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta
// и т.д...
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2016, 19:22
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

sash003,
// вешаю
$(window).on('DOMMouseScroll mousewheel', function(e){
        imgOnScroll(e);
});
// пытаюсь снять 
$(window).off('DOMMouseScroll mousewheel', imgOnScroll);   

var imgOnScroll = function(e){
            window.preventdefault(e);
            var evt = e.originalEvent ? e.originalEvent : e,
            delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta
// и т.д...
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2016, 19:41
Аватар для sash003
Аспирант
Отправить личное сообщение для sash003 Посмотреть профиль Найти все сообщения от sash003
 
Регистрация: 23.10.2014
Сообщений: 72

А включаешь - не работает
Ответить с цитированием
  #4 (permalink)  
Старый 29.05.2016, 19:44
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

sash003,
весь код в студию!
Ответить с цитированием
  #5 (permalink)  
Старый 29.05.2016, 19:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от sash003
window.preventdefault
Ответить с цитированием
  #6 (permalink)  
Старый 30.05.2016, 14:27
Аватар для sash003
Аспирант
Отправить личное сообщение для sash003 Посмотреть профиль Найти все сообщения от sash003
 
Регистрация: 23.10.2014
Сообщений: 72

Дааа... Там фуннция написана за пределами замыкания, вот я и подумал, что нужно так писать.. Я такое дно
function preventdefault(e){
    e = e || window.event;
    if(e.preventDefault) e.preventDefault();
    else e.returnValue  = false;
    
}

А всё было так просто.. Зачем вешать событие на всю бодью если
el = document.querySelector('.popopenDiv');

Но всё равно прокрутка не работает как надо. Если вешаю попап на один див, всё чудесно, а если на два, то прокручиваются только несколько картинок иногда. Буду очень благодарен, если посмотрите на код. Прошу не ржать в голос
Вложения:
Тип файла: txt script.txt (7.3 Кб, 4 просмотров)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить выполняться обработчик после всех имеющихся обработчиков данного элемен Анатолий Саратовцев jQuery 2 08.10.2012 18:49
colorbox - снять обработчик со ссылки qwert_ukg Библиотеки/Тулкиты/Фреймворки 5 19.09.2012 07:22
Как снять обработчик с очередью FanAizu jQuery 0 11.02.2012 19:28
можно ли снять обработчик с hover DjDiablo jQuery 1 08.09.2011 01:51
Как "обмануть" обработчик события? itPiligrim Events/DOM/Window 0 13.05.2010 22:55