2013-03-01 46 views
0

它令人傷心。一些背景知識,我是Javascript新手,這是我生命中的第一個應用程序,並且在兩天內翻閱了一半Javascript教科書。這是一個連接到我的HTML結尾的外部文件。如果需要更多,請提問,我會盡力提供。Javascript定時幻燈片不起作用至少

var slide = document.getElementById("slide"); 

setInterval(slideshow.changeSrc, 5000); 

var slideshow = { 
    changeSrc : function() {  
     if(slide.src === "./images/s1.png"){ 
      slide.src = "./images/s2.png"; 
     } 
     else if(slide.src === "./images/s2.png"){ 
      slide.src = "./images/s3.png"; 
     } 
     else{ 
      slide.src = "./images/s1.png"; 
     } 
    } 
} 
slide.addEventListener("load", slideshow.changeSrc, false); 
+0

issetInterval(slideshow.changeSrc,5000);正確?不應該是slide.changeSrc而是? – Stepo 2013-03-01 21:18:18

+0

這並不能真正回答你的問題,但通常你可能不想用這種方式來處理幻燈片。一般來說,最好的做法(對於語義和非JS後備)將HTML中的所有幻燈片(而不是動態地添加/刪除img src屬性)都使用JS來動態地隱藏/移動它們。我會建議選擇一個好的幻燈片插件,並使用它和/或檢查它是如何工作的,並根據這個靈感構建自己的。祝你好運! – 2013-03-01 21:21:22

+0

會考慮和測試!儘管如此,仍然希望獲得更多關於爲什麼這不起作用的意見。 – 2013-03-01 21:23:40

回答

0

src屬性是瀏覽器解析你給它的URL的結果。不要用它進行比較。另外,只有窗口和某些元素(如圖像或腳本)具有load事件。試試這個:

相反,爲什麼不跟蹤一個索引?

(function() { 
    var id = 0, slide = document.getElementById('slide'); 
    setInterval(function() { 
    id++; 
    slide.src = "images/s"+id+".png"; 
    id %= 3; 
    },5000); 
})(); 
+0

我會嘗試。實際上聽起來很簡單。我將使用它加載和隱藏我的所有圖像,並使其可見。希望它能起作用。謝謝! – 2013-03-01 22:28:48

+0

它的工作!爲了讓事情更加語義化,我將添加幻燈片圖像並使用定位-nods來隱藏它們 - 感謝大家的幫助! – 2013-03-02 03:03:33

0

我覺得這是你想才達到什麼:

var slide = document.getElementById("slide"); 
var slideshow = { 
    changeSrc : function() {  
     setTimeout(function() { 
      slide.src = 'http://lorempixel.com/100/100'; 
     }, 1000); 
    } 
} 
slide.addEventListener("load", slideshow.changeSrc, false); 

http://jsfiddle.net/Bs4gM/