点按一下按钮,首先点击,然后点击第二次。所以当点击多次动画时粉碎了。
有没有办法在动画期间禁用点击,只有在动画完成时启用?
请参阅下面的代码,其中prop disbled无法正常工作
jQuery('.start_button').click(function(event){
jQuery(this).find('button').prop('disabled', true);
if(clickcount === 0){
jQuery(this).find('button').prop('disabled', true);
wheelForuneAnim.startAnimation();
jQuery(this).find('button').prop('disabled', false);
clickcount = 1;
}
else if(clickcount === 1){
jQuery(this).find('button').prop('disabled', true);
wheelForuneAnim.stopFull();
setTimeout(function(){
wheelForuneAnim.stopAnimation();
}, 700);
clickcount = 0;
};
});
这是标记
<div class="start_button">
<button type="button"></button>
</div>
方法
startAnimation = function () {
interval = setInterval(this.animation, 250);
};
animation = function () {
if((wheelelement % elems.length)==0){ wheelelement = 0 ;}
elems.removeClass('active_wheel');
jQuery('.game_wheel_item:eq('+wheelelement+')').addClass('active_wheel');
wheelelement++;
};
任何想法如何解决这个问题?
答案 0 :(得分:0)
不需要那么多代码,下面的代码可以解决你的问题
jQuery('.start_button').on('click','button',function(event){
jQuery(this).off('click','button');
wheelForuneAnim.startAnimation(function()
{
// do your second if stuff
setTimeout(function(){
wheelForuneAnim.stopAnimation(function()
{
// after function finished executing do some stuff here
});
jQuery(this).on('click','button');
}, 700);
});
});
您的方法
startAnimation = function (cbck) {
interval = setInterval(this.animation, 250);
if(cbck)
{
cbck();
}
};
stopanimation = function (cbck) {
if((wheelelement % elems.length)==0){ wheelelement = 0 ;}
elems.removeClass('active_wheel');
jQuery('.game_wheel_item:eq('+wheelelement+')').addClass('active_wheel');
wheelelement++;
if(cbck)
cbck();
};
答案 1 :(得分:0)
您可以随时尝试这样做:
jQuery('.start_button button').click(function(event) { //This gets the button in the div
var button = jQuery(this);
if (buttonText(button.text()) === "Start") {
wheelForuneAnim.startAnimation();
button.text('Stop')
} else {
wheelForuneAnim.stopFull();
setTimeout(function() {
wheelForuneAnim.stopAnimation();
button.text('Start')
}, 700);
}
})
function buttonText(text) {
if (text === "Start") {
return "Start"
} else {
return "Stop"
}
}
这不会禁用您的按钮,但我认为它可以帮助您防止动画中断。