2013-03-26 66 views
0

我正在創建一個網頁,通過單擊按鈕激活幻燈片放映。當我第一次點擊該按鈕時,我希望用戶在實際運行幻燈片放映之前獲得他們希望更改爲下一張圖像的速度。下次單擊該按鈕時,我希望幻燈片停止。現在第一部分正在工作,但是當我第二次單擊它時,它只是再次顯示提示,並且不會停止幻燈片顯示。誰能告訴我我做錯了什麼?這是我對給定功能代碼:Javascript幻燈片不會停止

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; 
    } 
} 
+1

'家庭作業'標記已棄用,您不鼓勵使用它。 – Abubakkar 2013-03-26 04:39:40

回答

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中使用一個字符串。

+0

它仍然在第二次點擊時提示我,並且幻燈片不會像預期的那樣停止。 – Brett 2013-03-26 04:41:14

+0

有沒有其他想法? – Brett 2013-03-26 23:54:30

+1

想通了。還必須將temp2放在函數之外。感謝您帶領我朝着正確的方向前進。 – Brett 2013-03-27 00:01:46