Отменить event.preventDefault();

Рейтинг: 0Ответов: 1Опубликовано: 08.02.2015

Добрый день.

Пытаюсь заставить работать колесико мышки для скролла блока:

$('.master').mouseover(function(){ 
    var val = -100;

    $(document).mousewheel(function(event,delta) {

    if(delta > 0) {
    val+=10;
    }

    if(delta < 0) {
    val-=10;
    }

    $("#slider02").html(val);
    $('.master .slide-text').css('margin-top', val);

    event.preventDefault();
    });

  });

Все работает хорошо, но есть одно большое НО. Необходимо, чтобы прокручивался только блок .master, т.е. когда мы убираем курсор с блока, то необходимо возвращать дефолтное поведение колеса мыши (прокрутка всей страницы). Сейчас куда бы не убрал курсор, продолжается скроллинг блока. Как убрать event.preventDefault();? Пробовал ставить return false - без результата: либо вообще ничего не работает, либо без внимания.

Буду благодарен за подсказку.

Ответы

▲ 1

Эээ, а почему бы не писать

$(document).on('mousewheel','.master',function(){/ ... /});

?

И это... не надо этот обработчик вешать все время, вы так за 100 входов в блок тормозов сделаете и будете удивляться отчего перехватчик по 100 раз отрабатывает.

Обновление

Вы на каждый mouseover добавляете новый обработчик события mousewheel.