2016-11-13 61 views
1

我試圖爲我的JavaScript幻燈片創建一個播放/暫停按鈕,但由於某些範圍問題,按鈕阻止了我的進度。通過單擊元素play來切換兩個字符串值。當功能slideshow確實打印出working時,它無法打印狀態並執行該功能。函數無法識別播放/暫停幻燈片的全局變量

這裏是與畫廊小提琴:

Fiddle live example

我會很感激你的幫助

var state='play' 
slideshow() 

pause.onclick=function(){ 
    console.log(state) 
    if (state=='play') 
    { 
     state='pause' 
    } 
    else{ 
     state='play' 
    } 
} 

function slideshow(){ 
    console.log('working') 
    if (state == 'play'){ 
     console.log('play') 
     var pic='<img src="'+ images[slide]+'">' 
      gallery.innerHTML=pic 
      slide+=1; 
      console.log(slide) 
      if(slide-1==length){ 
       slide=0 
      setTimeout(slideshow, 3000); 
      } 
     } 
    } 
+1

在**設置'var state ='play''後,在你的小提琴中運行'slideshow()'**。你的小提琴也不包含任何幻燈片對象。 –

+0

謝謝你,我更新了小提琴。你知道爲什麼幻燈片不能自動運行嗎? https://jsfiddle.net/u9gqct9v/11/ – st4rgut

回答

1

我已經把一個完整的小提琴here

你的幻燈片最初沒有工作了幾個原因:

  1. 您的當滑動計數器達到最大值檢查是不正確的。它需要是:if(slide==images.length){

  2. 您在錯誤的地方有}。如果在if之內,它只會設置超時時間。

+0

只是爲了確保我明白,在函數slideshow()之前調用'slideshow'只在腳本第一次運行時調用? – st4rgut

+0

是的。你的邏輯是正確的,只是一些小錯誤。 –

2

Updated fiddle

請檢查控制檯,你可以看到一個沒有定義錯誤:

Uncaught ReferenceError: slide is not defined(…)

當你聲明滑移旋鈕,你會得到:

Uncaught ReferenceError: gallery is not defined(…)

您對申報slidegallery變量:

var slide=0; 
var gallery= document.getElementsByClassName('gallery')[0]; 

希望這有助於。

相關問題