2012-06-04 39 views
1

我有一個小問題,jquery/javascript倒計時,我希望你能幫助我。在與jquery同一頁上多次倒計時

所以,我有定時器功能,其中有一個一個參數,稱爲選擇器(jQuery選擇)..

function timer(selector) { 
    self = $(selector);  
    var sec = parseInt(self.find('span.timeout').text()); 

    var interval = setInterval(function() { 
    sec--; 
    if (sec >= 0) { 
     self.find('span.timeout').text(sec); 
    } else { 
     setInterval(interval); 
    } 
    }, 1000); 

} 

,HTML我有這樣的事情。

<div class="element" id="el1"><span class="timeout">10</span></div> 
<div class="element" id="el2"><span class="timeout">10</span></div> 

與相同等級和不同的ID的

和功能的使用多個元素是這樣的:

$("body").on('click', '.element', function() { 
timer(this); 
}); 

在第一次點擊它工作得很好,定時器倒計時。 但是當我點擊第二個div與同一班,第一個計數器停止,第二個從前一秒。

所以,我怎麼能在同一頁面上使用js/jquery進行多次倒計時,所以我可以點擊這兩個元素和兩個計時器工作正常?

演示:http://jsfiddle.net/zKTkj/

+0

張貼的jsfiddle工作的例子,所以我們可以看看 – wroniasty

+0

你真的應該把錢花在您的格式一些努力,讀你的問題實在是很難UND不能接受的。 – iappwebdev

回答

1
  • 您忘記了與var申報self。結果,self成爲全球變量。在創建第二個計時器時,您正在覆蓋此全局(「共享」)變量。所以,這兩個定時器都是從那時開始的,同時,輸出到第二個元素,造成小故障。
  • 你可能意思是clearInterval(interval)

http://jsfiddle.net/zKTkj/1/

+0

哦,廢話..這是持續工作和疲憊的原因。 非常感謝:) –

+1

@Lado Lomidze:考慮在腳本文件的頂部添加'「use strict」;',在設置一個未聲明的變量的情況下會引發異常。 – pimvdb