1

基本的に、ハードコードされた値はすべて機能します。ただし、偶数オブジェクトの配列を作成して設定すると、カレンダーにイベントが追加されません。

           function getCalendarEvents() {
           var events = new Array();
           $(".ms-srch-item:visible").each(function () {
                   events.push(
                       {
                           title: $(this).find(".assigned_resource").html(),
                           start: new Date($(this).find(".start_date").attr("date")),
                           end: new Date($(this).find(".end_date").attr("date"))
                   });
           });
           return events;
       }

       $(document).ready(function () {
           $("#testme").click(function () {
               var array = [{ title: 'All Day Event', start: new Date(2013, 8, 5)  }];
               array = getCalendarEvents();
               var calendar = $('#calendar').fullCalendar({
                   header: {
                       left: 'prev,next today',
                       center: 'title',
                       right: 'month,agendaWeek'
                   },
                   events:array
               });

               $(".fc-button-agendaWeek").click(function () {
                   $(".fc-agenda-allday").next().next().hide();

               });
           });
       });

配列オブジェクトを確認しましたが、適切な値を持つ正しい形式になっています。しかし、何らかの理由でイベントが発生しません。関数を使用せずにハードコーディングを使用すると、その1つのイベントで機能します。私のコードに何か問題がありますか?

編集:

ここに作業コードがあります(私が追加した色のものは無視してください):

function getCalendarEvents() {

           if(calendarColors.length < 1)
           {
               //build colors first time ...do it here because we want to wait for async clients call to finish 
               BuildCalendarColorsMap();
           }
           var events = new Array();

           $(".ms-srch-item:visible").each(function () {
               var client = $(this).find(".client").html();
               //junk check testing
               if (client && client.indexOf('<strong>Client:</strong>') != -1) {
                   client = client.replace('<strong>Client:</strong>', '');
                   var start = new Date($(this).find(".start_date").attr("date"));
                   var end = new Date($(this).find(".end_date").attr("date"));
                   var title = client + ": " + $(this).find(".assigned_resource").html().replace('<strong>Assigned Resource:</strong>', "");
                   var color = getCalendarColor(client);
                   events.push(
                       {
                           title: title,
                           start: new Date(start.getFullYear(), start.getMonth(), start.getDate()),
                           end: new Date(end.getFullYear(), end.getMonth(), end.getDate()),
                           color: color
                       });
               }
           });
           return events;
       }
4

1 に答える 1

1

文字列のstartおよびend属性を確認してください。

文字列は、ISO8601 形式、IETF 形式、または UNIX タイムスタンプ (整数形式または文字列形式) のいずれかです。

FullCalendar/docs/parseDate

于 2013-08-08T14:02:26.540 に答える