Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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中调用Ajax后为假日着色_Javascript_Jquery_Ajax_Fullcalendar - Fatal编程技术网

Javascript 在FullCalendar中调用Ajax后为假日着色

Javascript 在FullCalendar中调用Ajax后为假日着色,javascript,jquery,ajax,fullcalendar,Javascript,Jquery,Ajax,Fullcalendar,我和你一起工作。 我的目的是给节日增添不同的背景色。经过大量搜索,我可以说一个好的解决方案是使用dayRender挂钩。但如何获取假期列表,以及时间安排如何 解决方案1:每天进行一次Ajax调用 dayRender: function (date, cell) { $.ajax({ url: '/myproject/holidays?date='+date, type: "POST", success: function(isHoliday

我和你一起工作。 我的目的是给节日增添不同的背景色。经过大量搜索,我可以说一个好的解决方案是使用dayRender挂钩。但如何获取假期列表,以及时间安排如何

解决方案1:每天进行一次Ajax调用

dayRender: function (date, cell) {
    $.ajax({
        url: '/myproject/holidays?date='+date,
        type: "POST",
        success: function(isHoliday) {
            if (isHoliday) {
                cell.css("background-color", "red");
            }
        }
    });
}
它应该有用,但是。。。每天打一次Ajax电话?这似乎不是个好办法

解决方案2:一个ajax调用获取所有假期

dayRender: function (date, cell) {
    if ($.inArray(date, holidayList)) {
        cell.css("background-color", "red");
    }
}
“holidayList”在以前的某个地方被拿来过<那是我的问题。何时之前?如何确保在调用dayRender之前已完成提取holidayList? 换句话说:是否有一个钩子可以用来获取假期列表?


谢谢

我在这里看到两个选项:

  • 只有在假日抓取Ajax请求完成后才初始化整个日历(同时显示加载器/微调器)。简单,但不“漂亮”

  • 假日抓取Ajax请求完成后,立即刷新整个日历视图。由于internal
    reinitView
    方法很遗憾没有被导出到外部调用,因此您还需要再执行几个步骤:

    var fcEl = $('#calendar'),
        view = fcEl.fullCalendar('getView');
    view.unrenderDates();
    view.renderDates();
    fcEl.fullCalendar('refetchEvents');
    

  • 我在这里看到两种选择:

  • 只有在假日抓取Ajax请求完成后才初始化整个日历(同时显示加载器/微调器)。简单,但不“漂亮”

  • 假日抓取Ajax请求完成后,立即刷新整个日历视图。由于internal
    reinitView
    方法很遗憾没有被导出到外部调用,因此您还需要再执行几个步骤:

    var fcEl = $('#calendar'),
        view = fcEl.fullCalendar('getView');
    view.unrenderDates();
    view.renderDates();
    fcEl.fullCalendar('refetchEvents');
    

  • 你可能会觉得很有帮助。这个答案(我已经读过)并没有给我的问题增加任何内容,它建议使用“dayRender”,这在我的问题中已经提到过。不过还是要谢谢你。你可能会觉得很有帮助。这个答案(我已经读过)并没有给我的问题增加任何内容,它建议使用“dayRender”,我的问题中已经提到过。不过还是要谢谢你,谢谢你。我想我会选择第一个,不是因为它更简单,而是因为我不喜欢第二个获取的想法,因为它可能会导致闪烁的事件,或者更糟糕的是,用户的操作丢失。当然,表将短暂显示,而不带假日背景色,这取决于ajax请求所需的时间。谢谢。我想我会选择第一个,不是因为它更简单,而是因为我不喜欢第二个获取的想法,因为它可能会导致闪烁的事件,或者更糟糕的是,用户的操作丢失。当然,表会短暂地显示,而不带假日背景色,这取决于ajax请求需要多长时间,这是真的。