简单的Javascript XML幻灯片

时间:2011-05-09 21:00:09

标签: javascript slideshow

我似乎无法弄清楚为什么这不起作用。我只有两个简单的函数:一个将图像加载到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();
}

2 个答案:

答案 0 :(得分:0)

这一行看起来非常可疑:

t = setTimeout("nextImage()", 5000);

请改为尝试:

t = setTimeout(nextImage, 5000);

答案 1 :(得分:0)

将函数定义移出if语句。