Javascript 关于更新jQuery超时的问题
我正试图通过以下代码制作一个简单的插件来计算日期和时间:Javascript 关于更新jQuery超时的问题,javascript,jquery,Javascript,Jquery,我正试图通过以下代码制作一个简单的插件来计算日期和时间: <div id="timer"></div> <script> $.fn.timeCounter = function(time) { var target = new Date(time); var now = new Date(); var timeDiff = target.getTime() - now.getTime(); if (timeDiff &l
<div id="timer"></div>
<script>
$.fn.timeCounter = function(time) {
var target = new Date(time);
var now = new Date();
var timeDiff = target.getTime() - now.getTime();
if (timeDiff <= 0) {
clearTimeout(timer);
}
var seconds = Math.floor(timeDiff / 1000);
var minutes = Math.floor(seconds / 60);
var hours = Math.floor(minutes / 60);
var days = Math.floor(hours / 24);
hours %= 24;
minutes %= 60;
seconds %= 60;
$("#timer").append( "<p>"+days+"</p>" );
$("#timer").append( "<p>"+hours+"</p>" );
$("#timer").append( "<p>"+minutes+"</p>" );
$("#timer").append( "<p>"+seconds+"</p>" );
var timer = setTimeout('timeCounter',1000);
};
$("#timer").timeCounter("june 16, 2014 00:01:00");
</script>
$.fn.timeCounter=函数(时间){
var目标=新日期(时间);
var now=新日期();
var timeDiff=target.getTime()-now.getTime();
如果(timeDiff以下显示以秒为单位的倒计时:
$.fn.timeCounter = function(time) {
var target = new Date(time);
var now = new Date();
var timeDiff = target.getTime() - now.getTime();
// count down logic
setTimeout(function cdtd(){
if (timeDiff > 0){
// reduce one seconds
timeDiff-=1000;
// change this to a more dedicated display per your requirements
$('#timer').html(timeDiff/1000);
// next one second, reference to cdtd
setTimeout(cdtd,1000);}
},1000);
}
见工作样本:
看在上帝的份上,让我知道你为什么否决这个问题!?timeCounter
不是一个函数,你可能想要$.fn.timeCounter
也需要一个参数。传递一个带有函数名的字符串不会有任何作用,字符串中的代码必须实际调用函数。嗨,穆萨,谢谢你的回复,我更新了代码为:var timer=setTimeout(“$.fn.timeCounter(time)”,1000);但没有任何更改!嗨,Danyu,感谢您的代码,但请注意cdtd()是一个输入错误,我在代码中修改了它。现在你能告诉我你为什么使用它吗?其他的计算呢?没关系。我用它作为函数名。在setTimeout中,你可以用名称定义一个函数。另外,检查我刚刚附加的工作示例。那么我必须在所有的小时、天、秒和分钟内重复它吗?你不需要必须。从timeDiff中获取小时,分钟,也就是毫秒。我更改了示例以hh,mm,ss的格式显示倒计时。