jQuery动画回调在Firefox中触发两次,有时在Chrome中触发

时间:2014-01-28 09:26:21

标签: jquery jquery-animate jquery-callback

我有以下代码:

$logo.css({
    top : '800px'
}).animate({
    top : '200px'
}, 2000, function() {
    $text.animate({
        height : '800px'
    }, 2000, function() {
        console.log("this fires twice in firefox, and sometimes in chrome too");
    });
    console.log("this fires twice in firefox, and sometimes in chrome too");
});

在IE中 - 它一直触发两次回调函数,就像我想要的那样。

在Firefox中 - 它一直两次触发两个回调函数。

在Chrome中 - 它有时会触发一次,有时两次。

问题 - 如何修复它以便只调用一次回调函数?

1 个答案:

答案 0 :(得分:2)

在每个.stop(true)

之前添加.animate()

如果这样做无效,请改为使用.stop(true,true)

$logo.css({
    top : '800px'
}).stop(true).animate({
    top : '200px'
}, 2000, function() {
    $text.stop(true).animate({
        height : '800px'
    }, 2000, function() {
        console.log("this fires twice in firefox, and sometimes in chrome too");
    });
    console.log("this fires twice in firefox, and sometimes in chrome too");
});