在我的代码中,我有一个 div 在按下按钮时会左右移动。但是,当我多次按下按钮时,它会根据按下的次数移动。我想要它做的是在动画完成之前阻止任何输入(或按下按钮)。
我尝试使用延迟来防止操作“排队”,但这只是将它们推迟了几秒钟。
这是我目前的代码*以及该想法的 jsfiddle 示例:http: //jsfiddle.net/Sjfuv/(是的,它们不同,示例不是我自己制作的)
jQuery(document).ready(function($) {
var clickState = 0;
var cssForState = [{
'margin-left': '0px'
},{
'margin-left': '-850px'
},{
'margin-left': '-1700px'
}];
var advanceToNextClickState = function() {
clickState++;
if (clickState >= cssForState.length)
clickState = 0;
};
var previousClickState = function() {
clickState--;
if (clickState < 0)
clickState= 2;
};
$('.RButton').click(function (e) {
console.log("Received click while clickState = " + clickState);
advanceToNextClickState();
$('.slideContain').delay(150).animate(cssForState[clickState]);
});
$('.LButton').click(function (e) {
console.log("Received click while clickState = " + clickState);
previousClickState();
$('.slideContain').delay(150).animate(cssForState[clickState]);
});
});
*向在我最后一个问题上帮助我的用户表示感谢,我喜欢这种工作方式^_^