mousedown на scrollTop: вернуть false - проблема - PullRequest
0 голосов
/ 31 мая 2011


Я нашел здесь код, чтобы позволить мышке щелкнуть мышью и прокрутить содержимое div.Но, когда я пытаюсь это сделать, return false или protectDefault не предотвращает щелчок и не перезапускает страницу.Вы знаете, как я мог заставить этот код работать?оповещение работает хорошо, но затем код обновляет страницу:

var scrolling = false;
        $('#cat-diapo').find('#lien-fleche-cat').mousedown(function(e){
               var sous_cat = $(this).parent().prev('.sous-cat');
               //var sous_cat = $('.sous-cat');
               //var direction = '+=';
               //sous_cat.animate({scrollTop: direction + 5}, 10);
                scrolling = true;
                alert('allop');
                //return false;
                e.preventDefault();
                //startScrolling(sous_cat, '+=10');


        })
        /*
        .mouseup(function(){
                scrolling = false;
        });*/


        function startScrolling(obj, param){
            if (!scrolling) {
                obj.stop();
            } else {
                obj.animate({"scrollTop": param}, "fast", function(){
                if (scrolling) { startScrolling(obj, param); }
                });
            }
        }

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 июня 2011

Вам необходимо предотвратитьDefault () при нажатии.Вы должны быть в состоянии сделать что-то вроде этого:

$('#cat-diapo').find('#lien-fleche-cat').bind({
    mousedown: function(){
        var sous_cat = $(this).parent().prev('.sous-cat');
        scrolling = true;
        alert('allop');
    },
    click: function(e){
        e.preventDefault();
    }
});

Это просто быстрое редактирование из вашего кода.Поместите все, что вам нужно, в функцию mousedown.

0 голосов
/ 31 мая 2011

Это немного догадка, но я думаю, что поскольку вы только захватываете mousedown, недостаточно использовать e.preventDefault(), но вам может понадобиться использовать e.stopImmediatePropagation(), чтобы другие обработчики событий не запускались как хорошо (т. е. события клика)

...