Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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错误_Javascript_Jquery - Fatal编程技术网

倒计时结束情况导致Javascript错误

倒计时结束情况导致Javascript错误,javascript,jquery,Javascript,Jquery,我有一个简单的倒计时插件,它一秒一秒地倒计时到一个时间,当达到这个时间时,它运行我选择的回调函数 今天我发现,如果我在同一个页面上有两个倒计时,并且一个倒计时结束,就会发生javascript错误,因为变量未定义,这也会破坏第二个倒计时 代码如下: (function($) { $.fn.countdown = function(options, callback) { var $self = $(this); var settings = { 'date' :

我有一个简单的倒计时插件,它一秒一秒地倒计时到一个时间,当达到这个时间时,它运行我选择的回调函数

今天我发现,如果我在同一个页面上有两个倒计时,并且一个倒计时结束,就会发生javascript错误,因为变量未定义,这也会破坏第二个倒计时

代码如下:

(function($) {
$.fn.countdown = function(options, callback) {
    var $self = $(this);

    var settings = {
        'date' : null,
    }

    if(options) {
        $.extend(settings, options);
    }

    function countdownProcessor() {
        var eventDate = Date.parse(settings.date) / 1000;
        var currentDate = Math.floor($.now() / 1000);

        if (eventDate <= currentDate) {
            callback.call(this);
            clearInterval(interval);
        }

        var secondsBetween = eventDate - currentDate;

        // processing logic here.

    }

    countdownProcessor();
    interval = setInterval(countdownProcessor, 1000);
}

})(jQuery);
(函数($){
$.fn.countdown=函数(选项,回调){
var$self=$(本);
变量设置={
“日期”:null,
}
如果(选项){
$.extend(设置、选项);
}
函数倒计时处理器(){
var eventDate=Date.parse(settings.Date)/1000;
var currentDate=Math.floor($.now()/1000);
如果(eventDate添加
var

var interval = setInterval(countdownProcessor,1000);
这使得
间隔对于正在运行的每个倒计时都是局部的,而不是全局的

var interval = setInterval(countdownProcessor,1000);