将鼠标悬停在scrollTop上:返回false-问题

| 我在这里找到了一个代码,让鼠标单击并滚动div的内容。但是,当我尝试使用它时,返回false或preventDefault不会阻止单击,然后重新启动页面。您知道我如何使此代码有效吗?警报效果很好,但是随后代码刷新了页面:
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); }
                });
            }
        }
谢谢     
已邀请:
        您需要专门防止单击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函数中。     
        有点猜测,但是我想因为您只捕获了鼠标按下,所以使用
e.preventDefault()
是不够的,但是您可能还需要使用
e.stopImmediatePropagation()
来防止其他事件处理程序触发(即点击事件)     

要回复问题请先登录注册