Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在单击时更改所有FullCalendar的事件颜色?_Javascript_Fullcalendar_Fullcalendar 4 - Fatal编程技术网

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'```