所以我的想法是将每个图像从底部淡出..显然,它必须向后遍历数组。但是,我现在似乎无法弄明白。想法是它会在运行fadeOut()函数后暂停,我认为设置超时会起作用,但是firebug给了我这个错误: 无用的setTimeout调用(参数周围缺少引号?)
第262行。 我甚至不使用$ .each循环并使用for(i = 0循环
<script type="text/javascript">
//Bottom Nav functions
$(document).ready(function(){
$('#bottomNav a:eq(0)').click(function(){
var arti = $('#aHolder article');
var amt = arti.length;
var i = 0;
for (i=0;i<amt;i++){
$('#aHolder article:eq('+i+')').fadeOut();
setTimeout(300);
}
});
});
</script>
答案 0 :(得分:4)
这样的事情应该做:
var i = $('#aHolder article').length,
interval = setInterval(function () {
if (i-- <= 0) {
clearInterval(interval);
return;
}
$('#aHolder article:eq(' + i + ')').fadeOut();
}, 300);
循环中的延迟执行最好使用interval。一旦达到终止条件,就可以清除它。