如何在下一次按钮点击之前等待slideToggle结束

时间:2015-05-17 03:30:15

标签: javascript jquery



 $('.mybutton').click(function(){
 $('.someclasstohide').slideToggle(500)
 })




如何让我的按钮等到幻灯片完成? 我的意思是在下一次点击之前等如果我添加insert.stop(),它就会停止发送垃圾邮件,直到slideToggle完成。

2 个答案:

答案 0 :(得分:6)

嗯,鉴于你想让动画在动画运行一段时间内不可点击而不是停止动画(清除动画队列,这通常已经完成),我会利用{{3} }。

考虑示例代码:

$('.mybutton').click(function(){
    // Disable the button
    $(this).prop("disabled", true);

    $('.someclasstohide').slideToggle(500, function(){
        // Reenable the button
        $('.mybutton').prop("disabled", false);
    });
})

答案 1 :(得分:1)

另一种可能性是检测您的元素是否正在动画,然后返回。您可以使用animated选择器。如果你想让你的按钮被禁用,那么@ James'答案是要走的路。



$('.mybutton').click(function () {
    
    var classToHide = $('.someclasstohide');
    
    if( classToHide.is(':animated') ) return;
    
    classToHide.slideToggle(500);
    
});

#test {
    width: 50px;
    height: 100px;
    background: black;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="mybutton">
    Click me
</button>

<div id="test" class="someclasstohide"></div>
&#13;
&#13;
&#13;