我正在使用我网站上的FullCalendar javascript库来并排显示每个员工的日历。日历显示“日”视图,因此很容易看到每个人的日程安排。
我的所有日历并排显示正确(每个日历在各自的div中)。
我的问题是,通过单击日历创建新事件时,该事件总是在页面的最后一个日历上创建,而不是您单击的实际日历。我觉得它与select回调函数中的闭包有关。
/*
* 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!');
}
}
});
}
谢谢
最佳答案
当您选择日历employeeId等于444时,它将在最后一个日历上呈现事件,请尝试以下操作:
select: function(start, end, allDay , jsEvent ,view) {
$(view.element).parent().parent().fullCalendar('renderEvent',
{
title: "This Estimate",
start: start,
end: end,
allDay: allDay
},
true // make the event "stick"
);
$(view.element).parent().parent().fullCalendar('unselect');
}
关于javascript - 使用FullCalendar.js在多个日历上创建事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16730645/