0

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>

これが出力方法です

ここに画像の説明を入力してください

どうすればこれを修正できますか?

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の例:

ここに画像の説明を入力してください

4

1 に答える 1

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]);
于 2012-10-28T21:27:47.840 に答える