Javascript 如何在单击时更改所有FullCalendar的事件颜色?
我想在单击时更改所选事件的颜色,此外,当我在日历中选择另一个事件时,我希望上一个事件获得其初始颜色 这就是我所尝试的:Javascript 如何在单击时更改所有FullCalendar的事件颜色?,javascript,fullcalendar,fullcalendar-4,Javascript,Fullcalendar,Fullcalendar 4,我想在单击时更改所选事件的颜色,此外,当我在日历中选择另一个事件时,我希望上一个事件获得其初始颜色 这就是我所尝试的: eventClick:function(info){ if($(this).css('background-color')=='rgb(58, 135, 173)'){ $(this).css('background-color','red'); }
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);}})
没有人,我看到,对所选事件有效,我想要的是当我点击一个新的事件时,重新显示上一个事件的颜色上一个…你是指在这个事件之前最后一个被选择的事件,还是时间刚好在它之前的事件?不清楚。$“日历”不是第4版中对完整日历的引用方式……它是。只是日历。设置选项。。。应该是正确的,假设calendar是您在初始化日历变量时为其指定的名称,并且假设它不在我可以从您的1行代码片段中确定的范围内。此外,如果您运行setOption来设置eventColor,这将为所有事件设置颜色,而不仅仅是一个事件。如果您想让它为特定事件设置颜色,您需要获取该事件对象并对其进行更改。我也尝试使用setOption,但获取setOption不是一个函数var calendar=newfullcalendar.calendar$'calendar'calendar.render calendar.setOption'slotMinTime',05:00:00';设置选项'slotMaxTime','21:00:00'```