FullCalendar:在下一次/上一次单击后保留日期属性



我使用FullCalendar作为用户安排约会的界面。当我加载日历时,我会根据当天已经安排的约会数量绘制各个日期。这是代码:

 function paintCalendar (dailyPercentage) {
    $.each(dailyPercentage, function(){
            if (this.percentage >= 65) {
                $cell = $('td.fc-future[data-date="' + this.date.substring(0, 10) + '"]');
                $cell.addClass('fc-high-traffic');
                $calendar.fullCalendar('refetchEvents');
            } else if (this['percentage'] >= 35) {
                $cell = $('td.fc-future[data-date="' + this.date.substring(0, 10) + '"]');
                $cell.addClass('fc-medium-traffic');
                $calendar.fullCalendar('refetchEvents');
            }
    });
}

我添加的每个类都有一个与之相关的背景色

但是,当用户单击"上一个"、"下一个"或"今天"按钮时,日历将完全重新加载,并且我添加的类将被删除。

我在这里看到了一个类似的问题,但他的解决方案涉及在事件对象本身中传递额外的数据。我正在处理那些没有度过的日子。

有没有什么方法可以在日历刷新后触发类似于此响应的事件?

我的函数运行得很好,我只需要一个事件来触发它的执行。

您可能需要使用eventRender或eventAfterRender。

我不完全理解你的问题,但你当然可以使用这些回调将类添加到你的事件中

此外,refetchEvents可能不应该在循环中使用,因为这可能会导致对服务器的多次调用

这个问题的解决方案适合这个问题。我只是在不同的地方添加了触发器,以处理特定的更改,以适应我的问题。

fullcalendar.js

function prev() {
    renderView(-1);
    trigger('complete', null, true);
}

function next() {
    renderView(1);
    trigger('complete', null, true);
}

function today() {
    date = new Date();
    renderView();
    trigger('complete', null, true);
}

我的javascript

complete: function () {
        paintCalendar(dailyPercentage);
    }

如果您的问题是事件div对象正在重新渲染,并且缺少以前设置的项,如背景颜色和类,请查看http://arshaw.com/fullcalendar/docs/event_data/Event_Object/

相关内容

  • 没有找到相关文章

最新更新