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グローバル コンテキストで使用さRunSlideれるためです。ローカルであるため、 は表示されません。

に文字列を渡すことsetTimeout()は決して良い考えではありません。ここに 1 つの理由があります。

于 2012-07-14T14:39:43.460 に答える