猿问

setInterval还没执行完index怎么就变了?

var index = 0;
		
		var animate = function(offset){
			return function(){
				var left = parseInt(list.style.left) + offset/10;
				list.style.left = left + 'px';
				if(left == 0) list.style.left = -3000 + 'px';
				alert(index);
				if(left == index*-600) clearInterval(interval);
				
			}
		}
		prev.onclick = function(){
			interval = setInterval(animate(600),100);
			index --;
			if(index<0) index = 4;
			
		}

为什么输出的 index为4??不是还没clearInterval吗??下面的语句就被执行了??

上帝子民Chris
浏览 1288回答 1
1回答

Caballarii

setInterval是异步的,后面的会先执行,否则你需要把index--写到setInterval里面
随时随地看视频慕课网APP
我要回答