jQuery倒计时插件多个实例无法正常工作

时间:2012-10-28 20:55:10

标签: javascript jquery countdown instances

我的脚本使用jquery.countdown.js插件有问题,它没有为我传递给它的每个元素设置多个实例,它总是为所有设置第一个实例,所以倒计时总是相同的。

链接到插件:http://keith-wood.name/countdown.html

   $(function(){

     $.each($('.countdown'), function() {
     var _element = '.countdown-'+$(this).attr("id");
     if($(_element).length > 0){
    var _expDate = $(_element).attr('data-expiration').split(',');
    var _datetime = Date(_expDate);
    init_countdown(_element,_datetime);
   }

});      
});

  function init_countdown(_element,_datetime){
    console.log(_element + ", " + _datetime)
    $(_element).countdown({
      until: _datetime,
      format: 'yowdHMS'
    });

  }

HTML:

<h5 class="muted countdown countdown-1" id="1" data-expiration="2014,10,26,14,10,35"> 2014-10-26 14:10:35</h5>
<h5 class="muted countdown countdown-2" id="2" data-expiration="2014,10,26,16,10,35"> 2014-10-26 16:10:35</h5>
<h5 class="muted countdown countdown-3" id="3" data-expiration="2014,10,26,18,10,35"> 2014-10-26 18:10:35</h5>

这是它的输出方式

enter image description here

我该如何解决这个问题?

console.log() 

.countdown-1, Sun Oct 28 2012 22:10:09 GMT+0100 (CET)


.countdown-2, Sun Oct 28 2012 22:10:09 GMT+0100 (CET)


.countdown-3, Sun Oct 28 2012 22:10:09 GMT+0100 (CET)

@Asad示例:

enter image description here

1 个答案:

答案 0 :(得分:1)

日期构造函数(以您使用它的形式)接受几个整数值,而不是数组。您需要将数组中由拆分产生的每个值转换为整数(使用parseInt),然后将每个参数单独传递,而不是作为数组传递。

试试这个:

var _expDate = $(_element).attr('data-expiration').split(',');
_expDate.forEach(function(v,i,a){a[i]=parseInt(a[i]);});
var _datetime = new Date(_expDate[0],_expDate[1],_expDate[2],_expDate[3],_expDate[4],_expDate[5]);