javascript - jQuery 动画在运行时触发回调两次

标签 javascript jquery callback jquery-animate slidetoggle

我正在使用 jQuery 为滚动效果设置动画,在动画结束后,我触发了一个效果,由于某种原因该效果被触发了两次,我该如何防止它发生?

$('.something').on('click', function() {
            $('html, body').animate({
                scrollTop: $('footer').offset().top
            }, {
                queue: false,
                duration: 1500,
                complete: function() {
                    $('.foo').toggleClass('active');
                    $('.bar').slideToggle();    
                }
            });                
            return false;
        });

slideToggle 效果好像触发了两次。 我在 html 和 body 上设置了动画,因为来自“body”的动画在 IE8 中不起作用。

最佳答案

由于您触发了两个动画(在 html 和 body 上),因此应该调用两次完整的回调。

您可能希望仅在需要时才在 html 上触发动画

var animateOn = isIE8 ? 'html' : 'body';
$(animateOn).animate();

关于javascript - jQuery 动画在运行时触发回调两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14680038/

相关文章:

c++ - 在 Visual Studio 2008 中使用 C++ 创建简单 COM 组件的示例

javascript - Three.js如何使用四元数旋转相机

javascript - 我正在尝试使用 div 名称作为变量来打开和关闭多个按钮的 div

javascript - 如何向我的网站添加 HTML 代码,以便当人们单击它时,它会打开与我的 WhatsApp 对话?

javascript - Jquery 不在 cordova 应用程序中运行

delphi - 如何将方法作为回调传递给 Windows API 调用(后续)?

android - 使用 TweetComposer 发送推文时回调?

javascript - 为什么 select 标签没有填充我的 ng-options?

javascript - 如何在 TypeScript 中从匿名对象轻松创建强类型对象?

javascript - 关闭外部 div google maps api v3 中的信息窗口