2013-12-13 22 views
-2

HTML:定時器工作正常嗎?

<div id="timer"></div> 

的Javascript:

timer.innerHTML = "100"; 
var yoursite = "http://explame.com" 

var mytimer = document.getElementById("timer") 

setInterval(function() { 
    mytimer.innerHTML -= 1; 

    if(mytimer.innerHTML == '1') { 
     setTimeout(function(){ 
      location.href=yoursite 
     }) 
    }; 
}, 1000); 

我想創建一個定時器...我的計時器是現在工作...好:d

+8

「我無法在嘗試之前發佈它。」 ... 什麼? – BoltClock

+0

JSFiddle是你的朋友在這裏:http://jsfiddle.net/ – melancia

+0

開始標識你的代碼。 – DontVoteMeDown

回答

4

你可以試試這個:

var timer = 100; 
var yoursite = "http://explame.com"; 
var mytimer = document.getElementById("timer"); 
mytimer.innerHTML = timer; 

var interval = setInterval(function() { 
    timer--; 
    mytimer.innerHTML = timer; 

    if (timer == 1) { 
     location.href = yoursite; 
     window.clearInterval(interval); 
    } 
}, 1000); 

看到它的工作here

關於代碼:

  • 在每一行的末尾使用;保持;
  • 我已經使用了一個數值變量來保存定時器的計數,因爲不是一個最佳的做法(也很糟糕),不能用字符串進行算術運算(就像你在做mydiv.innerHTML -= 1)。要做到這一點,你必須使用一些強制轉換函數,所以使用數字變量更簡單;
  • 我不明白爲什麼要用setTimeOut撥打location.href,所以我將其刪除;
  • 我已清理過程結束時的間隔。

希望它有幫助。祝你好運。

+0

'textContent'而不是'innerHTML'會更快。 – Pavlo

+0

@Pavlo因爲**一個**電話一秒鐘?這將是無關緊要的。 – DontVoteMeDown

+0

同意,性能增益可以忽略不計。但開發一個好習慣是使用適合這項工作的工具。在這種情況下,它是'textContent'。 – Pavlo