我在这里找到了一个代码,让鼠标点击并滚动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); }
});
}
}
由于
答案 0 :(得分:0)
这是一个猜测,但我认为既然你只捕获了mousedown,使用e.preventDefault()
是不够的,但你可能需要使用e.stopImmediatePropagation()
来保留其他事件解雇的处理程序(即点击事件)
答案 1 :(得分:0)
您需要专门针对点击阻止默认()。你应该可以这样做:
$('#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函数中放置您需要的任何内容。