settimeout for循环问题

520 阅读1分钟

解决方法:

function doScaledTimeout(i) {
  setTimeout(function() {
    console.log(i);
  }, i * 5000);
}

for (var i = 1; i <= 4; ++i){
   doScaledTimeout(i);
}

解释:

for 循环(i)传给函数 doScaledTimeout()  

setTimeout 延迟用 i * 5000 = 循环次数 * 5秒。


高级版:

<div class="buys1"></div>
<script>
 $(function(){
   
   var m = ['<p>韩小姐(139**2527)获取淡斑方案</p>',
            '<p>顾小姐(150**3600)获取淡斑方案</p>',
            '<p>王小姐(151**2821)获取淡斑方案</p>',
            '<p>李小姐(152**2021)获取淡斑方案</p>',
            '<p>卢小姐(153**2526)获取淡斑方案</p>',
            '<p>崔小姐(155**2006)获取淡斑方案</p>',
            '<p>段小姐(156**8507)获取淡斑方案</p>',
            '<p>胡小姐(158**2407)获取淡斑方案</p>'];

                                                                        
	function doScaledTimeout(i) {
		setTimeout(function() {
			  
		console.log(m[i]);
		$('.buys1').show().empty().append(m[i]).stop().delay(1000).fadeOut(2000);
				
		}, i * 6000);
	}
			
			
            function timefor(){
		      for (var i = 0; i<m.length; i++){
			    doScaledTimeout(i);
			}
	    }

	    timefor();
	    setInterval(timefor,48000);
   
})   
</script>

循环调用 延迟函数。