2013-01-05 24 views
0

我正在嘗試製作一個JS倒計時腳本,用於調整要走的秒數和必須支付的價格。Javascript倒計時+價格調整

例如: 您將在秒被重定向或點擊這裏要立即重新定向。

所以,每秒30個虛擬硬幣。

我已經嘗試過,但我吮吸JS。

所以,我試圖(通過複製/粘貼在互聯網上找到其他代碼):然後offcourse具有HTML

<script type="text/javascript"> 
function countDown(secs,elem) { 
    var element = document.getElementById(elem); 
    element.innerHTML = "Please wait for "+secs+" seconds"; 
    if(secs < 1) { 
     clearTimeout(timer); 
     location.href='mywebpage.php'; 
    } 
    secs--; 
    var timer = setTimeout('countDown('+secs+',"'+elem+'")',1000); 

     timeout = 4; 
     if(document.getElementById('costs')) 
      document.getElementById('costs').innerHTML='&euro; '+(timeout*30); 
     document.getElementById('status').innerHTML = formatTime (timeout); 
     timeout--; 
} 
</script> 

<div id="costs"></div> 
<div id="status"></div> 

<script type="text/javascript">countDown(3000,"status");</script> 

我希望有人能幫助我。

自動倒計時,當計數器打到零時必須重定向,必須從第二個「計數器」每秒鐘取出30個東西。

所有提示將不勝感激。

在此先感謝。

編輯: 請注意,倒計時的作品,超時也適用,但我不知道如何將倒計時鏈接到超時= 4(倒計時功能的數量應該在4,已經嘗試過document.getElementById '狀態');以及類似的東西)。

編輯2:

固定!

所以,想通了。

對於人們也在尋找類似的JS:

<script type="text/javascript"> 
function countDown(secs, ele) 
{ 

    if(secs <= -1) 
    { 
     location.href = 'rangtest.php'; // No need to kill a timeout it only fires once 
    } 
    else 
    { 
     // This is just copying your code, you should fix this to use the targeted ele 
     if(document.getElementById('costs')) 
      document.getElementById('costs').innerHTML='&euro; '+(secs*30); 
     document.getElementById('status').innerHTML = (secs); 

     secs--; 
     setTimeout(function() { countDown(secs, ele); }, 1000); 
    } 
} 

</script> 

感謝@丹市長。

回答

0

我一直有問題試圖應用參數的計時器功能,這導致我總是定義一個匿名函數,反過來調用我正在嘗試調用。下面將需要一些修改,但應該有所幫助。

function countDown(secs, ele) 
{ 
    if(secs <= 0) 
    { 
     location.href = 'mypage.htm'; // No need to kill a timeout it only fires once 
    } 
    else 
    { 
     // This is just copying your code, you should fix this to use the targeted ele 
     if(document.getElementById('costs')) 
      document.getElementById('costs').innerHTML='&euro; '+(secs*30); 
     document.getElementById('status').innerHTML = formatTime (secs); 

     secs--; 
     setTimeout(function() { countDown(secs, ele); }, 1000); 
    } 
} 
+0

似乎無法得到這個工作,現在連倒計時失敗。 。 – Godee

+0

檢查您的控制檯以獲取更多信息。在我的例子中,我使用「ele」而不是「elem」作爲第二個參數名稱。如果你複製並粘貼你可能會失敗element.innerHTML。因爲elem不存在,所以調用var element = document.getElementById(elem)會返回「unidentified」或null。 – 2013-01-05 19:44:46

+0

注意到,仍然無法找出這一個。可能對JS太缺乏經驗,哈哈。無論如何,感謝您迄今爲止的幫助,但是您能解釋一下嗎?就像如何真正實現它的工作? – Godee

0

我更喜歡使用的不是支付每次創建一個新的匿名函數的開銷jQuery的綁定功能:

setTimeout(countDown.bind(this, secs, ele), 1000);