previous.click(function(){
if ((parseInt($('.slider-box').css('margin-left'))) < 0) {
$('.slider-box').animate({'margin-left':'+='+rubrikWidth});
}
});
此代码执行滑块向右移动,如果单击按钮并且左边距为&lt; 0。 但是当您经常快速点击时,if子句计算为慢,然后可以将滑块移动到远处。 我想防止点击按钮太快。 有办法吗? 点击 - &gt;执行事件 - &gt;执行完毕后,您可以再次点击。
答案 0 :(得分:1)
您只需使用animate
回调即可。这应该这样做,假设.slider-box
只匹配一个元素:
previous.click(function(){
var slider = $('.slider-box');
if (!slider.data('busy') && (parseInt(slider.css('margin-left'))) < 0) {
slider.data('busy', true).animate({'margin-left':'+='+rubrikWidth}, function() {
slider.data('busy', false);
});
}
});
答案 1 :(得分:0)
您可以通过检查来检查动画是否正在运行:
$('.slider-box').queue('fx').length
如果队列的长度大于零,则使用preventDefault