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

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