我似乎无法弄清楚为什么这不起作用。我只有两个简单的函数:一个将图像加载到img节点,另一个加载i变量。第二个函数在计时器事件+计数后触发,然后再次触发image()函数。除非它不起作用。
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
//XML Loaded, create the slideshow
alert(xmlhttp.responseText);
var slideShow = document.getElementById('slideShow');
var items = [];
var nl = xmlhttp.responseXML.getElementsByTagName('image');
var i = 0;
var t;
function image() {
var slideShowImg = document.getElementById('slideShowImg');
var nli = nl.item(i);
var src = nli.getAttribute('src').toString();
var width = parseInt(nli.getAttribute('width').toString());
var height = parseInt(nli.getAttribute('height').toString());
var imgNode = document.createElement('img');
imgNode.setAttribute('src', src);
imgNode.setAttribute('height', height);
imgNode.setAttribute('width', width);
slideShowImg.appendChild(imgNode);
t = setTimeout("nextImage()", 5000);
}
function nextImage() {
i++;
image();
}
image();
}
答案 0 :(得分:0)
这一行看起来非常可疑:
t = setTimeout("nextImage()", 5000);
请改为尝试:
t = setTimeout(nextImage, 5000);
答案 1 :(得分:0)
将函数定义移出if语句。