2016-11-13 11 views
1

javascriptスライドショーの再生/一時停止ボタンを作成しようとしていますが、スコープの問題によりボタンが進行を停止しました。要素playをクリックして2つの文字列値を切り替える。機能slideshowworkingを出力しますが、状態を出力して機能を実行することはできません。ここでスライドショーの再生/一時停止のグローバル変数を認識できない

はギャラリーとフィドルです:

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()'の直前の呼び出しは、スクリプトが最初に正しく実行されたときにのみ呼び出されますか? – 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]; 

これが役に立ちます。

関連する問題