1

我正在使用 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 中不起作用。

4

1 回答 1

4

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

您可能只想在需要时触发 html 上的动画

var animateOn = isIE8 ? 'html' : 'body';
$(animateOn).animate();
于 2013-02-04T03:47:20.290 回答