javascript - 动画完成后第二次单击(不重复,不在本上下文中!)

标签 javascript jquery

有类似的问题,但这是一些不同的问题,我找不到合适的解决方案。

我有简单的滚动功能,效果很好。

JS

$('#nextTabBtn').click(function () {
     var leftPos = $('.whatever').scrollLeft();
     $(".whatever").animate({scrollLeft: leftPos + 300}, 800);
});

HTML

<a id="nextTabBtn" class="btn btn-info">
    <i class="fa fa-caret-right"></i>
</a>

只有在动画完成后才能进行第二次单击。用户不能点击,例如btn 上 10 次。对于第二次点击,他必须等待。

如何使用 jQuery 做到这一点?

最佳答案

有几种方法可以实现您想要的功能,我通常这样做:

$('#nextTabBtn').click(function () {
     var $target = $('.whatever');
     if( $target.is(':animated') ) return;
     $target.animate({scrollLeft: $target.scrollLeft() + 300}, 800);
});

关于javascript - 动画完成后第二次单击(不重复,不在本上下文中!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33760832/

相关文章:

javascript - 为什么 anime.js 不工作?

javascript - 如何从函数内部的 URL 调用外部 javascript

JavaScript - 从图像的某个区域获取平均颜色

javascript - 如何在不更改文本和 Logo 不透明度的情况下仅更改滚动导航的背景颜色

jquery - 使用 Previous、Next 控件在柱形图中分页?

jQuery fadeToggle 不删除显示 :none

javascript - Vert.x 的 POST 请求和 JavaScript 有什么区别?

javascript - MutationObserver 没有在子节点上拾取

javascript - $ ('#foo' ).remove() 可能存在 jQuery 内存问题?

c# - 加载图像显示 ASP.NET 中的所有服务器端请求以及客户端请求