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