2017-09-27 4 views
0
私はタイマーに問題がある

こんにちはみんなを使用して、複数のカウントダウンタイマーへの単一の誰かが私を助けることができ、単一のタイマーが正常に動作しているが、私は、複数のタイマーに変換するとき、タイマーが作動していませんが変更Javascriptを

に私をあなたに感謝して下さい1つのタイマスニペットが追加されました ありがとうございました! :)

P.S私はこの部分でJqueryを使用することはできませんので、非常に困難です。

// value came here $time_end = sprintf('%013.0f', microtime(true)*1000 + 27000000); 30 minuts timer 
 
var countDownDate = "1506509439553"; 
 

 
// Update the count down every 1 second 
 
var x = setInterval(function() { 
 

 
    // Get todays date and time 
 
    var now = new Date().getTime(); 
 

 
    // Find the distance between now an the count down date 
 
    var distance = countDownDate - now; 
 

 
    // Time calculations for days, hours, minutes and seconds 
 
    var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
 
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
 
    var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
 
    var seconds = Math.floor((distance % (1000 * 60))/1000); 
 

 
    // Output the result in an element with id="demo" 
 
    document.getElementById("timer_1").innerHTML = minutes + ":" + seconds + ""; 
 
    //id is dynamic timer_<?php echo get_the_ID();?> 
 

 
    // If the count down is over, write some text 
 
    if (distance <= 0) { 
 
    clearInterval(x); 
 
    document.getElementById("timer_1").style.display = "none"; 
 
    } 
 
}, 1000);
<div id="timer_1"></div>

+0

いくつかのクロージャを使用しますか? – evolutionxbox

答えて

1

単にメソッドに既存のコードをラップし、それに要素IDを渡します。

デモ

startTimer("timer_1"); 
 
startTimer("timer_2"); 
 
startTimer("timer_3"); 
 

 
function startTimer(elementId) { 
 
    // value came here $time_end = sprintf('%013.0f', microtime(true)*1000 + 27000000); 30 minuts timer 
 
    var countDownDate = "1506509439553"; 
 

 
    // Update the count down every 1 second 
 
    var x = setInterval(function() { 
 

 
    // Get todays date and time 
 
    var now = new Date().getTime(); 
 

 
    // Find the distance between now an the count down date 
 
    var distance = countDownDate - now; 
 

 
    // Time calculations for days, hours, minutes and seconds 
 
    var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
 
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
 
    var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
 
    var seconds = Math.floor((distance % (1000 * 60))/1000); 
 

 
    // Output the result in an element with id="demo" 
 
    document.getElementById(elementId).innerHTML = minutes + ":" + seconds + ""; 
 
    //id is dynamic timer_<?php echo get_the_ID();?> 
 

 
    // If the count down is over, write some text 
 
    if (distance <= 0) { 
 
     clearInterval(x); 
 
     document.getElementById(elementId).style.display = "none"; 
 
    } 
 
    }, 1000); 
 
}
<div id="timer_1"></div> 
 
<div id="timer_2"></div> 
 
<div id="timer_3"></div>

+0

私はパラメータとして 'countDownDate'を置くことも良い練習であると思います。 – Bartheleway

+0

ああ、こんなに感謝してくれてありがとうございました@ gurvinder372 –

+0

@Barthelewayはい、私はこのコードがリファクタリングできると思います/読みやすくするために設計されています。 – gurvinder372