2016-01-07 35 views
-1

我有這樣的setInterval與功能警報:的JavaScript的setInterval隨機時間

setInterval(function(){ 
    alert('oo'); 
}, 5000); 

但我想改變我的(5000)區間內的各時間間隔運行警報() - 我想有它隨機選擇在5 - 10秒之間。任何想法如何做到這一點?

+1

不要使用'setInterval',但每個警報後,而不是設置新的*超時*。 – deceze

回答

3

您應該使用setTimeout設置後應執行的功能區間。

function myFunction() { 
 
    var min = 5, 
 
    max = 10; 
 
    var rand = Math.floor(Math.random() * (max - min + 1) + min); //Generate Random number between 5 - 10 
 
    alert('Wait for ' + rand + ' seconds'); 
 
    setTimeout(myFunction, rand * 1000); 
 
} 
 

 
myFunction()

+0

謝謝,輝煌! – peter

0

間隔,一旦設置,固定。

使用setTimeout而是遞歸地調用該函數。

function myAlert() { 
    setTimeout(myAlert, generate_random_time()); 
    alert('oo'); 
} 
1

你可以這樣說:

function myFunction() { 
 
    alert('oo'); 
 
    setTimeout(myFunction, Math.random() * 5000) 
 
} 
 

 
myFunction()

+0

謝謝,輝煌!對不起,我只能標記一個問題作爲答案,但您的答案CodeiSir也很棒! – peter

+0

做完了,@CodeiSir :) – peter