2016-05-07 77 views
0

我有一個JavaScript循環,每x秒更改一個指定標記的圖像,但是當我修改它時只會在單擊按鈕時運行,它什麼也不做。使用按鈕和javascript更改html img標記中的圖像

的JavaScript代碼:

<script type="text/javascript"> 
    var step = 1 
    var image1 = new Image() 
    image1.src = "img1.jpg" 
    var image2 = new Image() 
    image2.src = "img2.jpg" 
    var image3 = new Image() 
    image3.src = "img3.jpg" 
    function slideit() { 
     if (!document.images) return 

     document.images.slide.src=eval("images"+step+".src") 

     if (step < 3) 
      step++ 
     else 
      step=1 
    } 

    //--> 
</script> 

按鈕代碼: <input type="button" name="btnnext" value="Next Picture" onclick="slideit" />

我試圖改變到onclick="slideit()"但指出

「未捕獲的ReferenceError:images1沒有定義」

我不知道從哪裏去,任何幫助將不勝感激。

+1

因爲你的變量名稱是image1 image2等,沒有's' –

+1

你的slideIt函數需要工作,沒有理由使用eval。如果src始終爲「img」+ step +「.jpg」,則可以使用此模式,而不是爲每個人創建一個新的Dom元素,只抓取src – Damon

回答

0
  1. 應該onclick='slideit()'

  2. 你得到Uncaught ReferenceError: images1 is not defined的原因是因爲它試圖eval('images1.src')和(我不認爲)有這樣在你的代碼window.images1window.images2window.images3變量。

你可能就要什麼是定義srcarray一個s,然後拿到srcsArray[step]並使用它作爲新的src爲您document.images.slide

正如@帕特里克埃文斯說,但你可以通過改變你的evaleval('image' + step + '.src')來修復它。

我希望這會有所幫助。

+0

謝謝,將「圖像」更改爲圖像修復了它!怪異的,因爲這是當我循環它時破壞了代碼。 對於其他部分,我將使用數組,因爲看起來更穩定。 再次感謝! –