Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 关于更新jQuery超时的问题_Javascript_Jquery - Fatal编程技术网

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的格式显示倒计时。