我想把两个方法封装起来, 以后就可以多次使用了, 时间只能显示一次就报错 ? 还有fn也传不了? 是因为setTimeout的问题 ?
代码:
<h1 id="box2"></h1> <input type="button" id="button" value="倒计时"> <script type="text/javascript"> window.onload = function () { // 倒时时 var button = document.getElementById('button'); button.disabled = true; showTime().countDown('box2',function () { button.disabled = false; }); button.onclick = function () { console.log(this); } } function showTime() { return { countDown:function (id,fn) { var nowTime = new Date(); var endTime = new Date('2016/10/17,01:02:50'); var resultTime = parseInt((endTime.getTime() - nowTime.getTime()) / 1000); // 毫秒 时间差 var d = parseInt(resultTime / (24*60*60)); //天 var h = showTime().checkTime(parseInt(resultTime / (60*60) % 24));//时 var m = showTime().checkTime(parseInt(resultTime / 60 % 60)); //分 var s = showTime().checkTime(parseInt(resultTime % 60));//秒 // document.getElementById('box2').innerHTML = d+'天'+h+'时'+m+'分'+s+'秒'; document.getElementById(id).innerHTML = d+'天'+h+'时'+m+'分'+s+'秒'; if (resultTime <= 0) { fn(); document.getElementById(id).innerHTML = 'End'; } setTimeout(showTime().countDown,1000); }, checkTime:function (num) { if (num < 10) { num = '0'+num; } return num; } } } </script>
千秋此意