jQuery效果和队列

jQuery效果和队列,jquery,effects,queueing,Jquery,Effects,Queueing,我正在尝试使用jQuery效果链操纵一个对象。链中的某些效果取决于对象的当前位置。但似乎整个效果链在执行之前都已排队,因此任何用于获取当前位置的函数调用都会返回不正确的值 我使用的标准链接(.fadein().fadeOut().animate())的两种替代方法是在每个效果完成后使用回调来开始下一个效果。或者我可以考虑使用jQuery队列 如果我对回调进行编码,例如.fadeIn(500,startNextEffect),那么当fadeIn效果排队时,startNextEffect的内容将不会

我正在尝试使用jQuery效果链操纵一个对象。链中的某些效果取决于对象的当前位置。但似乎整个效果链在执行之前都已排队,因此任何用于获取当前位置的函数调用都会返回不正确的值

我使用的标准链接(.fadein().fadeOut().animate())的两种替代方法是在每个效果完成后使用回调来开始下一个效果。或者我可以考虑使用jQuery队列

如果我对回调进行编码,例如.fadeIn(500,startNextEffect),那么当fadeIn效果排队时,startNextEffect的内容将不会被计算,这一假设是否正确?还有什么更容易让我错过的吗

谢谢,,
Chris

您可以使用css
position
属性重叠图像,而不是使用
fadeIn()
fadeOut()
效果:

jQuery:

$(document).ready(function() {
    $('img').click(function() {
        $('img').fadeOut(400);
        $(this).next().delay(100).fadeIn(600);
    });
});
img { position:absolute; left:10px; top:10px; }​
css:

$(document).ready(function() {
    $('img').click(function() {
        $('img').fadeOut(400);
        $(this).next().delay(100).fadeIn(600);
    });
});
img { position:absolute; left:10px; top:10px; }​

动画结束时将调用
startNextEffect
函数,因此在此之前不会对其内容进行评估(当然,外部范围中的预缓存变量除外,它将设置最后一个值)。