我想突出显示某些日子(通过我可以根据自己的喜好设计的AJAX Feed获得),然后能够捕获这些日子的点击事件:



我看过events handler,但是它显然是设计来显示单个事件的,我不确定是否可以调整它来做我想要的事情。您能找出一种方法来仅将类名添加到那些日子,然后使用CSS设置其样式吗?

我正在使用FullCalendar v2.3.2(升级并不是真正的选择,因为它已在整个站点中使用)。

最佳答案

我已修改为假装ajax调用,..基本上等待1秒钟,就好像在进行ajax调用等一样,然后重新渲染。

唯一不好的是我如何进行刷新,可能会有更好的方法。 render方法不会重新渲染视图。

然后,您可以根据从ajax获得的数据进行修改以做其他工作。



var dtoday = moment().dayOfYear();
var days = [];

function pretendAjax() {
  setTimeout(function () {
    days = [dtoday - 2, dtoday + 2];
    //force calendar refresh, there might be a better
    //way than below, but will do for now
    $('#calendar').fullCalendar('changeView','basicWeek');
    $('#calendar').fullCalendar('changeView','month');
  }, 1000);
}


$('#calendar').fullCalendar({
  dayRender: function (date, cell) {
    var dofyear = date.dayOfYear();
    if (days.indexOf(dofyear) >= 0) {
      cell.css({backgroundColor: 'pink'});
    }
  },
});

pretendAjax();

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.0.1/fullcalendar.min.js"></script>
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.0.1/fullcalendar.min.css' />


<div id='calendar'></div>

关于javascript - 突出特定的日子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40421689/

10-13 01:30