Javascript 使jquery脚本1.5.2与when函数兼容

Javascript 使jquery脚本1.5.2与when函数兼容,javascript,jquery,jquery-deferred,Javascript,Jquery,Jquery Deferred,我需要做这个函数 $.when( self.image.fadeOut(self.options.animationSpeed), self.aniImg.eq(0).fadeIn(self.options.animationSpeed) ).done(function () { self.finishAnimating(data); }); 转换为与jquery 1.5兼容的函数 我一直在努力,但没能成功。有人能帮我吗 @编辑:我在这里做了一个设置。如您所见,在jqu

我需要做这个函数

$.when(
    self.image.fadeOut(self.options.animationSpeed),
    self.aniImg.eq(0).fadeIn(self.options.animationSpeed)
).done(function () {
    self.finishAnimating(data);
});
转换为与jquery 1.5兼容的函数

我一直在努力,但没能成功。有人能帮我吗


@编辑:我在这里做了一个设置。如您所见,在jquery 1.5.2中会发生奇怪的视觉效果,而jquery 1.6.x中却没有这种效果。如果有人能看一看,那将是非常棒的

您将无法制作出任何像延迟样式的代码那样漂亮的东西。我强烈建议您考虑升级jQuery的版本

一旦两个异步代码位完成,此代码只运行一个代码位。考虑到它们具有相同的给定持续时间,您可以简单地将代码延迟该时间量:

self.image.fadeOut(self.options.animationSpeed);
self.aniImg.eq(0).fadeIn(self.options.animationSpeed);
setTimeout(function() {
    self.finishAnimating(data);
}, self.options.animationSpeed);
这是一种快速且(略显)的方法。另一种方法是运行一个函数,当正确数量的函数完成时,该函数只执行一点代码

var ticks = 0;

function tick() {
    if (++ticks === 2) { // number of animations
        self.finishAnimating(data);
    }
}

self.image.fadeOut(self.options.animationSpeed, tick);
self.aniImg.eq(0).fadeIn(self.options.animationSpeed, tick);

这更详细,也不是很漂亮,但它更精确地复制了
$。当
行为时,它更具可扩展性。

我不太明白。当
fadeOut
fadeIn
都发生时,您想执行
done
函数吗?好吧,我并不是一个jquery专家,但这是一个与jquery 1.6一起工作的代码和平。我不能确切地告诉你它的作用(请告诉我)。但这应该转换成jquery 1.5(在其中我没有成功)和一个不同的对象。据我所知,
$。当
调用完全无用时,即使在1.6中,因为它完成后什么都不会发生。你能用人类语言告诉我代码说了什么吗,你知道如何把它当作不同的对象吗?阿洛托克,对不起,我误读了代码,因为有奇怪的缩进。我已经修复了我自己的尝试,以合理的方式格式化它,现在它是有意义的。我会发布一个答案。。。