使用jQuery
我更改 iframe
src
,每 60秒 (此工作正常)
我的jQuery
:
$(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
:
<iframe id="frame" src="http://link.com"></iframe>
我的iframe src
功能运行正常,我希望实现的是,而不是修复 delay
数字(现在为60秒),我也想更改delay
值,每次更新iframe src
。
新的delay
号码将是 15 &amp;之间的随机号码。 30 秒。
答案 0 :(得分:2)
一旦定义了间隔,就无法更改间隔。解决此问题的方法是链接setTimeout()
个调用,在每个调用之间产生一个随机延迟:
var locations = ['http://link1.com', 'http://link2.com', 'http://link3.com'];
var i = 0;
setTimeout(setSrc, getDelay());
function setSrc() {
console.log(locations[++i % locations.length]);
setTimeout(setSrc, getDelay());
}
function getDelay() {
var delay = (Math.floor(Math.random() * 30) + 15) * 1000;
console.log('waiting: ' + delay);
return delay;
}
&#13;
如何完成循环,它会停止?
在这种情况下,您可以检查i > locations.length
是否再次调用该函数:
function setSrc() {
console.log(locations[++i]);
if (i < locations.length)
setTimeout(setSrc, getDelay());
}