【问题标题】:FullCalendar: Keep day properties after next/previous clickFullCalendar:在下一次/上一次点击后保留日属性
【发布时间】:2014-04-30 15:50:01
【问题描述】:

我使用 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');
            }

    });
}

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

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

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

有什么方法可以在日历刷新后触发事件,类似于this response

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

【问题讨论】:

    标签: jquery fullcalendar repaint


    【解决方案1】:

    您可能需要使用eventRendereventAfterRender

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

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

    【讨论】:

    • 谢谢,但我已经想通了。我的问题与事件无关,而与个别日子本身有关。我将使用此功能为该单元格添加背景颜色,当我导航时,日历单元格将被重置。不过,您的最后一点很好,我将移动该刷新调用。
    【解决方案2】:

    this question 的解决方案适合该问题。我只是在不同的地方添加了触发器来处理适合我的问题的特定更改。

    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);
        }
    

    【讨论】:

    • 很高兴你把它整理出来,看看eventAfterRender。它可能适合您的情况,当然比更改源更好(如果您升级并忘记所做的修改,这会给您带来问题)
    • +1 以获得好的建议。我不认为 eventAfterRender 是我正在寻找的东西,所以我会很好地记录我的更改
    • 抱歉,我错误地标记了链接,它应该是eventAfterAllRender
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多