javascript - 如何仅在上一次点击完成后才执行下一次点击?

标签 javascript jquery slidetoggle continuous

我的 HTML:

<div>
    <p>Testing Paragraph</p>
    <span>Testing Span</span>
    <div class="content">This is the main content of this div</div>
</div>

我的 jQuery:

$('p').click(function () {
    $(this).parent().find('.content').slideToggle('slow');
});

fiddle :http://jsfiddle.net/Vs5DX/

从demo中可以看到,点击段落时内容会上下滑动。问题是,如果我非常快地多次单击该段落,那么它会在不单击的情况下不断上下移动。

我试过:

$(this).parent().find('.content').stop(true).slideToggle('slow'); 

但是当动画停止播放时情况更糟。有什么想法吗?

最佳答案

您可以使用 :not排除当前 :animated元素:

$('p').click(function () {
    $(this).parent().find('.content:not(:animated)').slideToggle('slow');
}); 

Updated Fiddle

关于javascript - 如何仅在上一次点击完成后才执行下一次点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16386188/

相关文章:

javascript - Backbone.js 在切换 View 时打破每个循环

javascript - Vue watch 意外调用了两次

javascript - 如何只加载一个div而不加载所有页面文件

jquery - 如何修复这个 jQuery SlideToggle?

javascript - 创建时重新获取 Backbone 集合

javascript - 响应式导航栏未显示(汉堡菜单)

javascript - 使用 jQuery 在不同的 `div` 之间标记一行

javascript - 我怎样才能让我的默认属性数组访问我的插件中传递的 jQuery 对象?

jQuery slideToggle 不适用于 <ul>

php - 不留在 css 中的单词切换