停止 .click() 侦听器,直到 jQuery 中的 fadeIn() 完成

bmc*_*mck 5 javascript jquery user-interface

$('#div1_button').click(function() {

    $('#div0').fadeOut(function(){          
        $('#div1').fadeIn();    
    });

});
Run Code Online (Sandbox Code Playgroud)

当用户单击 div1_button 时,先前选择的 div0 淡出,div1 淡入。如果用户疯狂单击并在 div1 完成淡入之前单击 div2,则 div2 开始淡入,最终 div1 淡出,但它们堆叠在每个顶部其他直到 div1 完成淡入然后淡出。如何停止 .click() 事件,直到单击的 div 完成淡入。

Niv*_*Niv 2

您可以使用 jQuery .stop() 函数停止动画。 http://api.jquery.com/stop/

$('#div1_button').click(function() {

    $('#div0').stop(true, true).fadeOut(function(){          
        $('#div1').stop(true, true).fadeIn();    
    });

});
Run Code Online (Sandbox Code Playgroud)

虽然这并不完全是您所要求的,但这绝对是我会做的。

  • 等待动画完成不是一个更好的主意吗? (2认同)