0

ボタンをクリックしてスライドショーをアクティブにしたWebページを作成しています。初めてボタンをクリックしたときに、スライドショーを実際に実行する前に、次の画像に変更する速度をユーザーに確認してもらいたいと思います。次にボタンがクリックされたときに、スライドショーを停止したいと思います。現在、最初の部分は機能していますが、もう一度クリックすると、プロンプトが再度表示され、スライドショーは停止しません。誰かが私が間違っていることを教えてもらえますか?与えられた関数の私のコードは次のとおりです。

function slideShow(){
var temp2 = 0;
  if (temp2 == 0){
    var speed = prompt("How fast would you like to the slideshow to go?");
    var timerID = setInterval("clock()",speed);
    temp2 = 1;
  }
  else if (temp2 == 1){
  clearInterval(timerID);
  temp2 = 0;
  }
}
4

1 に答える 1

1

動く

var timerID

関数宣言の外側に。

var timerID
function slideShow(){
var temp2 = 0;
  if (temp2 == 0){
    var speed = prompt("How fast would you like to the slideshow to go?");
    timerID = setInterval("clock()",speed);
    temp2 = 1;
  }
  else if (temp2 == 1){
  clearInterval(timerID);
  temp2 = 0;
  }
}

それが最も簡単な方法です。基本的には、その関数を呼び出すたびにその変数を破棄するだけです。


他のアドバイスもそうです。setIntervalで文字列を使用する必要はありません。

于 2013-03-26T04:38:22.003 に答える