[英]jQuery generate random number at a random time
我正在嘗試制作一個插件。 在這個插件中,我有兩個變量; rateMin和rateMax。 我想在這兩個數字之間生成一個隨機數,並將其用作setInterval時間。 然后,一旦使用該號碼,請創建另一個隨機數並使用它。
這是一個簡單的例子:
var defaults = {
rateMin: 500,
rateMax: 2000
}
var options = $.extend(defaults, options);
return this.each(function(defaults){
var rate = Math.floor(Math.random() * (options.rateMax - options.rateMin + 1)) + options.rateMin; // MAKE A RANDOM NUMBER BETWEEN MAX AND MIN
setInterval(function(){
var rate = Math.floor(Math.random() * (options.rateMax - options.rateMin + 1)) + options.rateMin
//DO SOMETHING
}, rate);
我希望這樣做,速率會用一個新數字覆蓋自己,並在下次調用setInterval時使用。 但它仍然只使用setInterval之前的第一個數字。
我想我不知道如何在它的功能之外使用變量。
有什么建議么?
如果您不希望每次延遲都相同,請使用setTimeout
而不是setInterval
。 另外,如果要覆蓋外部作用域中的變量,請不要在回調中使用var rate
。 也就是說,我只是將這段邏輯封裝在一個函數中而忘記它。
function getNextRate() {
return Math.floor(Math.random() * (options.rateMax - options.rateMin + 1)) + options.rateMin;
}
setTimeout(function foo(){
//DO SOMETHING
setTimeout(foo, getNextRate());
}, getNextRate());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.