jQuery效果和队列
我正在尝试使用jQuery效果链操纵一个对象。链中的某些效果取决于对象的当前位置。但似乎整个效果链在执行之前都已排队,因此任何用于获取当前位置的函数调用都会返回不正确的值 我使用的标准链接(.fadein().fadeOut().animate())的两种替代方法是在每个效果完成后使用回调来开始下一个效果。或者我可以考虑使用jQuery队列 如果我对回调进行编码,例如.fadeIn(500,startNextEffect),那么当fadeIn效果排队时,startNextEffect的内容将不会被计算,这一假设是否正确?还有什么更容易让我错过的吗 谢谢,,jQuery效果和队列,jquery,effects,queueing,Jquery,Effects,Queueing,我正在尝试使用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
函数,因此在此之前不会对其内容进行评估(当然,外部范围中的预缓存变量除外,它将设置最后一个值)。