我正在使用Fullcalendar打印日历中的事件。我遇到的问题是我不知道 Fullcalendar 是否允许您在打印事件后编辑事件的数据。我一直在阅读文档和部分 updateEvent(方法(,但我复制了它在那里所说的内容,它根本不起作用。我不知道我是否错过了什么。如果有人使用过完整日历,我将不胜感激。
function drawControl(controls) {
console.log(controls[0])
$('#calendar').fullCalendar({
editable: true,
aspectRatio: 1,
contentHeight: 500,
scrollTime: '24:00:00',
minTime: '01:00:00',
maxTime: '24:00:00',
defaultView: 'agendaWeek',
header:{left:"prev,next,today",
center:"title",
right:"month, agendaWeek, agendaDay"},
events: allControls(controls),
eventRender: function(event, element) {
var bloodLevel=event.title
if(bloodLevel >= 180) {
element.css('background-color', 'red');
}
else if(bloodLevel < 70) {
element.css('background-color', 'yellow');
}
},
eventClick: function(event, element) {
$('#calendar').fullCalendar('updateEvent', event);
}
//
// put your options and callbacks here
})
}
});
// draw your calendar
$('#calendar').fullCalendar(...);
// click something to make a change
$('#myButton').click(function(){
var myEvents = $('#calendar').fullCalendar('clientEvents');
for(var i in myEvents){
if(myEvents[i].property == myConcern) {
myEvents[i].something = newValue;
}
}
});
有两个选项:
- 使用
loading
- 使用
eventAfterAllRender
Bt 使用 eventAfterAllRender
,这是在所有事件从源在 fullCalendar 中完成渲染后触发的。
eventAfterAllRender: function( view ) {
var allevents = $('#calendar').fullCalendar('clientEvents');
var count = allevents.length;
- - -
- - -
}
现在,使用allevents
数组,做需要的事情。使用循环获取事件的属性。
在调用 .fullCalendar('updateEvent', event( 之前,尝试设置 event.backgroundColor 属性以及元素 .css((。
例:
if(bloodLevel >= 180) {
element.css('background-color', 'red');
event.backgroundColor = 'red';
}
else if(bloodLevel < 70) {
element.css('background-color', 'yellow');
event.backgroundColor = 'yellow';
}