Jquery 更新setInterval值,其本身为间隔(不生成随机数)

Jquery 更新setInterval值,其本身为间隔(不生成随机数),jquery,delay,setinterval,updating,Jquery,Delay,Setinterval,Updating,使用jQuery我正在更改iframesrc,每60秒一次(这很好) MyjQuery: 我的iframe: 我的iframe src函数工作正常,我希望实现的是,我不需要固定的delay数字(现在是60秒),而是每次更新iframe src时,我都要更改delay值 新的延迟数将是介于15和30秒之间的随机数。一旦定义了间隔,就不能更改间隔。一种解决方法是链接setTimeout()调用,在每次调用之间生成一个随机延迟,如下所示: var位置=['http://link1.com', '

使用
jQuery
我正在更改
iframe
src
,每60秒一次(这很好)

My
jQuery

我的
iframe


我的
iframe src
函数工作正常,我希望实现的是,我不需要固定的
delay
数字(现在是60秒),而是每次更新
iframe src
时,我都要更改
delay


新的
延迟
数将是介于1530秒之间的随机数。

一旦定义了间隔,就不能更改间隔。一种解决方法是链接
setTimeout()
调用,在每次调用之间生成一个随机延迟,如下所示:

var位置=['http://link1.com', 'http://link2.com', 'http://link3.com'];
var i=0;
setTimeout(setSrc,getDelay());
函数setSrc(){
日志(位置[++i%位置.length]);
setTimeout(setSrc,getDelay());
}
函数getDelay(){
变量延迟=(数学地板(数学随机()*30)+15)*1000;
log('等待:'+延迟);
返回延迟;

}
可能重复@Liam,但这不是重复的主题。在该主题中,您只生成一个随机数。我想要的是更新
setInterval
delay
值,方法是在
jQuery
中为其自身设置
Interval
。谢谢@Rory。作品很棒:)。我只有一个问题。我只想运行一次循环,通过在我的
setSrc()
函数中执行
iframe.attr(“src”,locations[++I])
实现了这一点。对吗?我看到在我完成了一次循环之后,
getDelay()
函数仍然在运行。当循环完成时,它确实停止了,我怎样才能使它如此呢。谢谢,谢谢你:)
$(document).ready(function(){
  var array = ['http://link1.com', 'http://link2.com', 'http://link3.com'];
  var locations = array;
  var len = locations.length;
  var iframe = $('#frame');
  var i = 0;
  setInterval(function () {
        iframe.attr('src', locations[++i]);
  }, 60000);

});
<iframe id="frame" src="http://link.com"></iframe>