以下功能根据单击的元素向上或向下移动滚动面板。问题是,如果用户双击,则名为offset的变量不能正确建立位置,因为前一个动画尚未结束。我们需要的是一种排队动画的方法,但我不知道如何做到这一点。
我尝试了超时但它在当前超时期间触发了超时功能,所以也没有好处。
var offset = 0;
$('#leftwheel li').click(function() {
var leftid = '#BKD' + $('#sLeft').val();
var doubleforward = $(leftid).next().next().attr('id');
var doublebackward = $(leftid).prev().prev().attr('id');
var offsettots = ($(this).parent().height() - 16) / 32;
var $this = this;
var offset = $($this).parent().position().top;
if('#' + $($this).attr('id') == leftid) { return false; }
else if($($this).attr('id') == doubleforward) {
offset += -64;
myScroll2.scrollTo(0, offset, 400);
}
else if($($this).attr('id') == doublebackward) {
offset += 64;
myScroll2.scrollTo(0, offset, 400);
}
else if('#' + $($this).attr('id') > leftid) {
offset += -32;
myScroll2.scrollTo(0, offset, 250);
}
else if('#' + $($this).attr('id') < leftid) {
offset += 32;
myScroll2.scrollTo(0, offset, 250);
}
});
有什么想法吗?
非凡
答案 0 :(得分:2)
有点猜测但是:
$('#leftwheel li').dblclick(function(e) {
e.preventDefault()
});
假设#leftwheel li
是要禁用双击的元素,应该可以做到这一点。
答案 1 :(得分:1)
在开头设置一个标志并在结束时重置它,然后只在标志为真时执行代码。
var flag = true;
$('#leftwheel li').click(function() {
if ( flag ) {
flag = false;
// Your code here
flag = true;
}
});