Web サイトで FullCalendar JavaScript ライブラリを使用して、各従業員のカレンダーを並べて表示しています。カレンダーには日ビューが表示されるので、その日のスケジュールを簡単に確認できます。
すべてのカレンダーが正しく並べて表示されています (それぞれ独自の div にあります)。
私の問題は、カレンダーをクリックして新しいイベントを作成すると、クリックした実際のカレンダーではなく、ページの最後のカレンダーにイベントが常に作成されることです。選択コールバック関数のクロージャーに関係しているように感じます。
/*
* Setup calendars for each sales person
*/
var d = $.fullCalendar.parseDate($("#requested_date").val());
//employee id numbers (each employee has own calendar)
var employees = new Array(445,123,999,444);
for(i=0;i<employees.length;i++)
{
var employeeId = employees[i];
//clear any prevoius calendar info
$('#calendar_' + employeeId).html("");
calendar[employeeId] = $('#calendar_' + employeeId).fullCalendar({
header: {
left: '',
center: '',
right: ''
},
year: d.getFullYear(),
month: d.getMonth(),
date: d.getDate(),
defaultView: 'agendaDay',
minTime: 7,
maxTime: 19,
height: 650,
editable: true,
selectable: true,
selectHelper: true,
select: function(start, end, allDay) {
calendar[employeeId].fullCalendar('renderEvent',
{
title: "This Estimate",
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
calendar[employeeId].fullCalendar('unselect');
},
events: {
url: 'calendar/'+employees[employeeId],
type: 'POST',
data: {
'personId': employees[employeeId],
'ci_csrf_token': wp_csr_value
},
error: function() {
alert('there was an error while fetching events!');
}
}
});
}
ありがとう