2013-06-27 111 views
0

我試圖讓div每30秒出現一次,但只有5次。我的代碼工作正常,只是通過div循環,每隔30秒顯示一個div,但是我需要它在完成這5次後停止。運行函數x次數

$(window).bind("load", function flashing() { 
    var counter = 0, 
    divs = $('.flash-image'); 
    function showDiv() { 
     divs.hide() // hide all divs 
     .filter(function (index) { return index == counter % 30; }) 
     .show('fast'); 
     counter++; 
    }; 

    showDiv(); // show first div  
    setInterval(function() { 
     showDiv(); // show next div 
    }, 1 * 1000); // do this every 1 seconds 
}); 

回答

3
var amount = 0; 
var timerId = setInterval(function() { 
    showDiv(); // show next div 
    amount++; 
    if(amount === 5) { 
     clearInterval(timerId); 
    } 
}, 1 * 1000); // do this every 1 seconds 
+0

你可以用你的'counter'變量太多,我添加量,所以我並不需要複製的孔代碼。 – NicoSantangelo

0
$(window).bind("load", function flashing() { 
    var counter = 0, 
    divs = $('.flash-image'); 
    function showDiv() { 
     divs.hide() // hide all divs 
     .filter(function (index) { return index == counter % 30; }) 
     .show('fast'); 
     counter++; 
    }; 

    showDiv(); // show first div  
    var inter = setInterval(function() { 
     if(counter < 5){ 
      showDiv(); // show next div 
     }else{ 
      clearInterval(inter); 
     } 
    }, 1 * 1000); // do this every 1 seconds 
}); 
+0

由於計數器循環,一旦間隔完成div停留在頁面上不斷閃爍,所以我不得不使用.hide它有點麻煩,但是做了瑞克'代碼'showDiv(); //顯示第一個div 變種間=的setInterval(函數(){ 如果(計數器<120){ showDiv(); //顯示下一個DIV }否則{ clearInterval(幀間); divs.hide() } },1 * 1000); //每1秒鐘做一次 });'code' –