我有一个id为demo
的iframe
我有一个5个html文件列表(promo1,promo2,promo3,promo4,promo5),它们将一个接一个地重复显示在iframe中。
每个html页面都有不同的时间间隔,它应该在框架中显示
以下是我的JavaScript代码,其中dict
代表每个html及其显示时间。
以下代码导致一次多次调用demo函数
;(function($){
"use strict";
var index=1,
dict={"promo1":70000,"promo2":46500,"promo3":18000,"promo4":93000,"promo5":86000},
var $firstFrame = $("#demo");
$(function (){
function demo(frameId,index){
frameId.attr("src","static/promo" + index + ".html");
frameId.load(function(){
if(index < 5){
a = setTimeout(demo(frameId , index + 1),dict["promo"+index]);
}
else if(index == 5){
var a = setTimeout(demo(frameId , 1),dict["promo"+index]);
}
});
}
demo($firstFrame , 1);
});
}(window.jQuery));
答案 0 :(得分:0)
您需要在函数中包装setTimeout操作。使用setTimeout时,您希望传递稍后要调用的函数。否则,您将立即调用demo并传递返回值。
setTimeout(function() {demo(frameId , 1),dict["promo"+index];});