You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在调用Ajax文件前获取FullCalendar正确的intervalStart/End值

解决FullCalendar Ajax请求时无法获取正确intervalEnd的问题

问题核心在于:切换月份时,events配置中Ajax请求的data函数执行时机早于视图更新完成,此时通过$('#calendar').fullCalendar('getView')拿到的是旧视图的intervalEnd;而eventAfterAllRender是视图渲染完成后触发,所以能拿到正确值。

解决方案

通过viewRender钩子(该钩子在视图切换、新视图即将渲染时触发,已持有最新的view对象)提前缓存正确的intervalEnd,后续Ajax请求直接使用缓存值即可:

$(document).ready(function() {
    // 定义变量缓存当前视图的intervalEnd
    let currentIntervalEnd = moment(defDate_str);

    $('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay,listWeek'
        },
        defaultDate: defDate_str,
        firstDay: 1, 
        navLinks: true,
        selectable: true,
        selectHelper: true,
        editable: false,
        eventLimit: true,

        // 视图切换时更新缓存的intervalEnd
        viewRender: function(view) {
            currentIntervalEnd = view.intervalEnd;
        },

        events: {
            url: 'ajax_load_projektkalender.php',
            type: 'POST',
            data: function() {
                var sel_jahr = currentIntervalEnd.format('Y');
                var sel_monat = currentIntervalEnd.format('M');

                return {
                    sel_jahr : sel_jahr,
                    sel_monat : sel_monat
                };
            },
            error: function() {
                alert('加载事件时出错!');
            },
            color: 'yellow',
            textColor: 'black'
        },
        displayEventEnd: {
            month: false,
            basicWeek: true,
            "default": true
        }, 
        timeFormat: 'H:mm',
        eventAfterAllRender: function(view) {
            var cal_enddatum_test = view.intervalEnd;
        }
    });
});

说明

  • viewRender钩子会在每次视图切换(比如点前/后月、切换周/日视图)时触发,此时传入的view参数就是最新的视图实例,intervalEnd值完全正确。
  • 初始化时把currentIntervalEnd设为默认日期对应的moment对象,保证首次加载时参数正确。

内容的提问来源于stack exchange,提问作者Daniel Bäuerlein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:07:12