1

jquery プラグインによって生成された日付のリストがあります。私は moment.js でこれを行うことができ、それは動作します:

このフィドル ( http://jsfiddle.net/UJ9z4/ ) を参照してください。

プラグインを実行しているライブ ファイルに適用しようとすると、未定義のエラーが発生します。

これは、DOMで新しく作成されたため、日付を取得できないことを意味すると理解しています。そのため、「on」を使用して、ロード後にスパンの内容を取得しようとしていますが、機能していません。さまざまなスレッドを見てさまざまな方法で試しましたが、どれも機能していないようです。

これがコードです

    <!--template for calendar list -->      
    <div id="cactuscal">
   <div class="gcf-item-container-block">
  <div class="gcf-item-block">
    <div class="gcf-item-header-block">
      <div class="gcf-item-date-block">
        <span class="gcf-item-daterange"></span>
      </div>
      <div class="gcf-item-title-block">
        <strong class="gcf-item-title"></strong>
      </div>
    </div>
    <div class="gcf-item-body-block">
      <div class="gcf-item-description">
      </div>
      <div class="gcf-item-location">
      </div>
    </div>
  </div>
</div>
</div><!--template for calendar list -->        
    <script type="text/javascript">

      $('#cactuscal').gCalFlow({
        calid: 'myaddress@gmail.com',
        link_item_title: false,
         maxitem: 6,
    daterange_formatter: function(sd, ed, allday_p) { return "<span class='startdate' data-date='" + (sd.getFullYear()) + "-" + (sd.getMonth() + 1) + "-" + (sd.getDate()) +"'>" + "</span>" + " – " + "<span id='enddate'"+">" + (ed.getFullYear()) + "-" + (ed.getMonth() + 1) + "-" + (ed.getDate()) + "</span>" }
      });

    </script>
<script type="text/javascript">
$(document).on("ready",function(){
    $('.startdate').each(function () {
    var then = $(this);

date = moment(then.attr('data-date')),
update = function(){
    then.html(date.format("dddd[(]M[/]D[)]"));
    then.trigger('onCreated');
};

update();
setInterval(update, 60000);
});
    });
</script>

gcalflow には日付範囲を希望どおりにフォーマットするオプションがないため、moment を使用して文字列を取得し、そのように再フォーマットすることを考えました。

希望どおりにフォーマットするには、gcalpro スクリプトで新しいオプションを作成する必要がありますか? またはこれは機能しますか?html 部分は、Google カレンダー フィードのテンプレートです。最初の js は、カレンダー フィードを表示するための gcalflow の呼び出しです。最後の js は、フォーマットされた日付を再フォーマットすることです。

4

1 に答える 1