3
function SlideShow(area)
    {
        var SlideImg = new Array('img1', 'img2');
        var SlideArea = document.getElementById(area);
        for(i=0;i<SlideImg.length;i++)
        {
            var html = '<img src="images/room/' + SlideImg[i] + '.jpg" id="' + SlideImg[i] + '" class="not-active" />';
            SlideArea.innerHTML += html;
        }
        var a = 0;
        function RunSlide()
        {
            document.getElementById(SlideImg[a]).className = 'active';
            a++;    
        }
        var run = setTimeout('RunSlide()', 5000);
    }

在我在那里添加 setTimeout() 方法后,此功能不起作用。有谁能够帮我?

4

1 回答 1

9

只需将其更改为:

var run = setTimeout(RunSlide, 5000);

原因是:当您将字符串传递给setTimeout()它时,它是eval在全局上下文中使用的 - whereRunSlide不可见,因为它是本地的。

将字符串传递给setTimeout()永远不是一个好主意,这里有一个原因。

于 2012-07-14T14:39:43.460 回答