2015-10-20 69 views
1
var delay=[1000,5000,2000,1000,1500] // (in milliseconds) 
window.ChatTimer = $.timer(updateTimer, delay, true).once(); 
function updateTimer() { 
// Do something 
} 

我想这个jQuery计时器每次都采取不同的延迟,但它是在每次执行时..... 采取相同的延迟,我使用jQuery的脚本文件。 U可以找到它下面 https://github.com/jchavannes/jquery-timer/blob/master/jquery.timer.jsjQuery的计时器延迟输入作为一个数组

+0

'延迟!==延迟' – Andreas

+0

输入错误...考虑它相同的 –

+0

你正在使用的所有插件。你能否更新你的问题,并把链接到这些插件。 – vijayP

回答

0
var delays=[1000,5000,2000,1000,1500] // (in milliseconds) 
var delay = delays[Math.floor(Math.random() * delays.length)]; 

window.ChatTimer = $.timer(updateTimer, delay, true).once(); 
function updateTimer() { 
    // Do something 
} 

林不知道究竟你想实现 - 它每次都会挑随机延迟,如果你需要它以某种方式排列,代码将是不同的,但你没有提供足够的信息。

[编辑] 如果我理解正确,这是你想要的东西:定时器的每一跳之后,你要经过时间的下一个值要执行从延迟阵列旁边打勾:

var delays=[1000,5000,2000,1000,1500]; // (in milliseconds) 
var i=0; 

window.ChatTimer = $.timer(updateTimer, delays[i++], true); 
function updateTimer() { 
    // Do something 
    if (i >= delays.length) { 
    i = 0; 
    } 
    window.ChatTimer.set({time: delays[i++]}); 
} 
+0

我wnt这个功能来挑选延迟,如数组中给出的顺序 –

+0

更新计时器功能应分别在1000,5000,2000毫秒后调用 –

+0

谢谢!它为我工作 –

0

您可以使用Math.floor()和Math.random()函数决定特定数组的下标。并且在生成下标后,您可以获得与数组中特定下标关联的值。

Suppose you want to return a random number between 1 and 10: 
index = Math.floor((Math.random() * 10)); 

如果有10元的阵列,那么你可以使用上面的函数返回值作为索引从数组元素得到。 例子 - arr_name [指数]

所以你看下面的例子

var delays=[1000,5000,2000,1000,1500] // (in milliseconds) 
//get random index for delays array and after that get element that associated to that index. 
index = delays[Math.floor(Math.random() * delays.length)]; 
window.ChatTimer = $.timer(updateTimer, index, true).once(); 
function updateTimer() { 
// Do something 
} 

这里delays.length - 指示延迟阵列存在元素的数量。