2012-04-27 12 views
0

このjavascriptのカウントダウンタイマーで、分数と秒に先行ゼロを追加しようとしていますが、動作するようにleadingzero関数を取得できません。私が追加、余分なleadingzero機能が動作していないようです:JavaScriptのカウントダウンタイマーで分秒に先行ゼロを追加する

<pre> <html> 
<head> 
</head. 
<body> 

<p style="font-size:100px;"> 

<div id="countdown"></div> </p> 
<div id="notifier"></div> 
<script type="text/javascript"> 

    function display(notifier, str) { 
    document.getElementById(notifier).innerHTML = str; 
    } 

function toMinuteAndSecond(x) { 
    return Math.floor(x/60) + ":" + x%60; 
} 



    function setTimer(remain, actions) { 
    (function countdown() { 
    display("countdown", toMinuteAndSecond(remain));   
    actions[remain] && actions[remain](); 
    (remain -= 1) >= 0 && setTimeout(arguments.callee, 1000); 
    })(); 
} 

function leadingzero(setTimer) { 

if (setTimer < 10 && setTimer >=0) 
     return '0' + setTimer; 
     else 
      return setTimer ; } 

{ 
} 

    setTimer(600, { 
10: function() { display("notifier", "Just 10 seconds to go"); }, 
5: function() { display("notifier", "5 seconds left");  }, 
0: function() { display("notifier", "Your access is no longer guaranteed.. you need to refresh your page to gain another spot");  } 
}); 
</script> 
</body> 
</html> 

</pre> 
+0

意味で「動作しない」んか?出力は何ですか? –

+0

コードは機能しますが、出力は09:08の代わりに9分8秒の9:8です。 – rome

+3

そして、明らかに 'return '0' + setTimer;は決して実行されません。私は 'leadingzero()がまったく呼び出されていないのを見ています... –

答えて

2
function toMinuteAndSecond(x) { 
    mins = Math.floor(x/60) 
    secs = x%60 
    y = ((mins>0) ? ((mins>9) ? mins : '0'+mins) + ":" : "") 
    y += (secs>9 || mins == 0) ? secs : '0'+secs; 
    return y 
} 
+0

+1 – Cody

関連する問題