2012-05-13 87 views
2

我有一個簡單的倒計時使用setinterval我得到的錯誤,我的功能沒有定義。我正在使用按鈕來啓動和停止間隔。任何想法爲什麼發生這種情況clearInterval啓動和停止按鈕

的Javascript

function startCount() { 
    $(function() { 
     var count = 10; 
     countdown = setInterval(function() { 
      $("p.countdown").html(count + " seconds remaining!"); 
      if (count === 0) { 
       window.location = 'http://google.com'; 
      } 
      count--; 
     }, 1000); 
    }); 
} 



function startStop() { 
    clearInterval(countdown); 
}​ 

HTML

<p class="countdown"></p> 
<button onclick="startCount()">Start</button> 
<button onclick="startStop()">Stop</button> 

演示 http://jsfiddle.net/54uQz/1/

回答

2

聲明你倒計時變量在startCount()函數之外,因此它對兩個函數都是可見的。目前它只存在於第一個,所以清除計時器什麼都不做。

CODE:

var countdown; 

function startCount() { 
    var count = 10; 
    countdown = setInterval(function() { 
     $("p.countdown").html(count + " seconds remaining!"); 
     if (count === 0) { 
      window.location = 'http://google.com'; 
     } 
     count--; 
    }, 1000); 
} 


function startStop() { 
    clearInterval(countdown); 
} 

的更新Fiddle Example!

+0

謝謝你的偉大工程。當倒數計數增加很快時,我單擊開始按鈕不止一次就會出現問題。有沒有辦法來防止這種情況發生? –

+0

在var count = 10之前調用'startStop();'查看[this Fiddle!](http://jsfiddle.net/zuul/54uQz/9/) – Zuul

相關問題