如何在点击时更改所有完整日历的事件颜色?



我想在单击时更改所选事件的颜色,此外,当我在日历中选择另一个事件时,我希望上一个事件获得其初始颜色。

这是我尝试过的:

eventClick:function(info){

if($(this).css('background-color')=='rgb(58, 135, 173)'){
$(this).css('background-color','red');
}

else{
$(this).css('background-color','rgb(58, 135, 173)');
}
}

我试图在 if 块之前添加这一行,但没有任何变化:

$('#calendar').fullCalendar(" eventColor", "#378006");                       

所以有什么想法吗?

更新

我在文档中发现我可以动态设置日历的选项,我做到了:

$('#calendar').setOption('eventColor','blue')

但是我收到一个错误,告诉setOption 不是一个函数

试试这个:

eventClick: function(event) {
event.backgroundColor = 'red';
$('#calendar').fullCalendar('rerenderEvents');
},

我在这里得到答案,只需添加一个变量来存储上一个事件并在下一次单击时更改其背景:

var previousClickedEvent;
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
locale:'fr',
defaultDate: '2016-10-01',
navLinks: true,
eventLimit: true,
events:events,
eventClick:function(info){                                                               
if(previousClickedEvent){
previousClickedEvent.css('background-color','rgb(58, 135, 173)');
}
/*some code*/

if($(this).css('background-color')=='rgb(58, 135, 173)'){
$(this).css('background-color','red');
}
else{
$(this).css('background-color','rgb(58, 135, 173)');
}                                   
previousClickedEvent=$(this);}})

最新更新