fullcalendar:有没有办法仅在我通过事件函数加载事件后调用 dayRender

2023-12-06

我正在构建的网络应用程序中使用 fullcalendar。

我加载我的事件事件函数和阿贾克斯。

这是我的代码:

var ajaxData;
var eventsJsonArray;
var json_backgrundColor;
var json_iconstring;

//alert('Hello! 1!');
$(document).ready(function () {

    $('#calendar').fullCalendar({
        header: {
            left: 'prev',
            center: 'title',
            right: 'next,month,agendaWeek,agendaDay'
        },
        //custom events function to be called every time the view changes
        events: function (start, end, timezone, callback) {
            var mStart = start.format('M')
            var yStart = start.format('YYYY')
            $.ajax({
                url: '$getMonthDataUrl',
                type: 'GET',
                data: {
                    startDate: start.format(),
                    endDate: end.format()
                },
                error: function () {
                    alert('there was an error while fetching events!');
                },
                success: function (data) {
                    alert('nice!!');
                    ajaxData = data;
                    json_iconstring = ajaxData['iconString'];
                    json_backgrundColor = ajaxData['Calendar_cell_background_color'];
                    eventsJsonArray = ajaxData['all_Events_For_The_Month'];
                    callback(eventsJsonArray); //pass the event data to fullCalendar via the supplied callback function
                }
            });
        },
        fixedWeekCount: false,
        showNonCurrentDates: false,

        dayRender: function (date, cell, view) {
            console.log(json_backgrundColor);//this brings eror because json_backgrundColor is undefined 
            var cellDate = date.format('D');
            if (date.format('M') == view.start.format('M')) //cheacking is this day is part of the currrent month (and not prev/next month)
            {
                alert(cellDate);
                cell.css('background-color', json_backgrundColor[cellDate]);//this brings eror because json_backgrundColor is undefined 

            }


        },
    })

});

当我通过 ajax 加载事件时,我还获得有关每个单元格应该获得哪种背景颜色的信息。我只能通过事件 ajax 请求获取此信息。

问题是当 dayRender 运行时,我仍然没有背景颜色数据。 (json_backgrundColor 未定义)。

有没有办法让 dayRender 在事件日历停止运行后运行?或任何其他可以解决我的问题的代码。

非常感谢!!


您的问题是,“dayRender”回调在视图更改后运行(为此目的,使用上一个/下一个更改日期算作更改视图),但在下载和呈现新视图的事件之前运行。这就是为什么你的json_backgrundColor数组未定义。

由于您提到要使用的颜色取决于当前安排在该特定日期的事件的确切性质,因此我们需要找到可以在所有事件和颜色数据下载后运行的东西。

检查 HTML,我们可以看到用于绘制每天的表格单元格都应用了 CSS 类“fc-day”。他们还有一个data-date包含与其相关的日期的属性。最后,禁用的日期(在主月之外,由于您的设置)showNonCurrentDates:false)应用了额外的“fc-disabled-day”类别。我们可以使用这些信息来识别我们想要更改的单元格,而不必使用dayRender打回来。

The eventAfterAllRender当所有事件都已呈现时,回调将运行一次。因此,这似乎是更改单元格背景颜色的好地方:

eventAfterAllRender(function(view) {
    //loop through each non-disabled day cell
    $('.fc-day:not(.fc-disabled-day)').each(function(index, element) {
      //set the background colour of the cell from the json_backgroundColor arrray, based on the day number taken from the cell's "data-date" attribute.
      $(this).css('background-color', json_backgroundColor[moment($(this).data("date")).format("D")]);
    });
}

注意我已经重命名了json_backgrundColor to json_backgroundColor纠正拼写错误。

注意:这是脆弱的,因为它依赖于 fullCalendar 在内部使用来表示日期单元格的类名。如果 fullCalendar 决定在未来版本中以不同的方式执行此操作,它将中断(而如果我们能够通过指定的回调使用 fullCalendar API,则尽管发生内部更改,它们可能仍会保持一致性,或者至少记录任何更改)。但这对于“月”视图非常关键,因此实际上它不太可能很快发生变化 - 如果您更新完整的日历版本,您只需要记住测试它即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

fullcalendar:有没有办法仅在我通过事件函数加载事件后调用 dayRender 的相关文章

  • 如何覆盖 phpunit 中导出的变量?

    我知道我可以设置环境变量 https phpunit de manual current en appendixes configuration html在我的 phpunit xml 里面
  • 谷歌地图API v3如何获取所有形状的坐标

    我有这个谷歌脚本 可以创建形状和删除形状 但没有太多关于保存形状的信息 我查了一下互联网 知道我可以通过 overlaycomplete 中的 getpaths 访问路径坐标 而且我还可以将坐标推入一个收集所有形状的数组中 但是 如果用户删
  • 变量值的 swap() 函数[重复]

    这个问题在这里已经有答案了 我无法达到下面这个交换函数的预期结果 我希望将值打印为 3 2 function swap x y var t x x y y t console log swap 2 3 任何线索将不胜感激 您的函数正在内部交
  • 无需下载整个文件即可读取 ID3 标签

    是否可以读取 MP3 文件的 ID3 标签 持续时间 艺术家 标题 而无需下载整个文件 我做了一些测试 只需下载 MP3 文件的几个字节就可以获得艺术家和标题标签 但我不确定持续时间和其他标签是否可能 Thanks 我刚刚发现 ffmpeg
  • 将 MathJax 脚本添加到 Office 365 Sharepoint 中的页面

    我正在尝试将 Mathjax 库添加到 SharePoint 库 以便我们可以使用 LaTex 语法来添加方程 我在网上搜索时看到了多种方法 但似乎没有一种方法可以与最新版本的 MathJax 和 Office 365 版本的 ShareP
  • JavaScript 匿名函数语法

    下面两个块有什么区别 block 1 console log anonymous block block 2 function anon console log anonymous block 2 我在 Netbeans 中运行了这个 使用
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • 如何在 jQuery 中选择时对 DOM 元素进行排序?

    我的页面上有以下 DIV div Div 3 div div Div 2 div div Div 1 div div Div 6 div div Div 5 div div Div 4 div 我正在尝试使用 jQuery 代码选择 Div
  • 将 jQuery 单击处理程序添加到多个元素?

    我需要有一个for在我的 jQuery 中循环 Example for i 0 i
  • 在窗口调整大小和窗口加载时动态调整 pixi 舞台及其内容的大小

    我正在尝试在窗口调整大小时动态调整 pixi 舞台 画布和内容 的大小 并且最初以浏览器窗口的大小加载 而不改变比例 我使用以下内容将初始大小基本上设置为window innerWidth window innerHeight 但它做了一些
  • 使用js获取选择选项的onclick事件

    我有一个非常令人沮丧的问题 我有这个代码 它过滤掉我的结果并将它们输入到选择框中 var syn
  • 如何显示不同页眉的页面? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在为我的学校项目开发网站 但我遇到了一个问题 我在每个页面上显示一个标题 我的标题之一包含登录表单 另一标题包含用户名 搜索栏等 问题是
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日
  • 如何将字符串转换为 Javascript 中可执行的代码行?

    我有以下代码 console log I am var x console log Alive 现在我只想使用x执行分配给它的代码字符串 例如 我什至可能不知道 x 的值 但只是想执行它 这可能吗 eval https developer
  • 如何防止IE11弹出(您确定要离开此页面)

    我正在处理一个页面 除了一个下拉菜单可供选择外 我无需输入任何内容 但在 IE11 中 当我尝试转到下一页时 它会弹出该消息 我想阻止这种弹出的发生 所以我只是想知道 IE11 中弹出窗口的默认行为是什么 因为它不会出现在 Chrome 或
  • Angular Material 10 范围 datepicker 和 moment.js 错误:date.getFullYear 不是函数

    尝试使用 moment js 的 rangePicker 选项来实现 Angular Material v10 datepicker 但是当我将 moment 与 rangePicker 结合使用时 它给了我这个错误 Error date
  • 如何检查 id 名称是否包含某种模式?

    我正在使用 jquery 并且循环如下 span each function index var idname this attr id idname click function window location href http thi
  • 查看元素的所有 dom 事件

    我有一个 jQuery UI 日期选择器 当您单击日期时 它会清除我的 URL 哈希值 并且不会更改文本框中的日期 我假设某个地方还有其他一些 JavaScript 实用程序 它也正在调用某种委托事件 抛出错误并终止 jquery 处理程序
  • 如何在jsp页面中包含javascript

    我是 J2EE 和 Web 开发的新手 这是我的问题 我想在网页中包含 angular js 这是有效的版本 但我也想要一些本地的 javascript 文件 并且希望我想在本地目录中导入 angularjs
  • AngularJS 应用程序:如何将 .js 文件包含到 index.html 中

    我是 angularJS 的新手 我设法使用 AngularJS 构建了一个phonegap应用程序 该应用程序正常并且运行良好 问题是 现在我对 angularJS 的工作原理有了更多的了解 至少我认为我已经了解了 我担心我的应用程序文件

随机推荐

  • 粘贴 (Python) Web 服务器 - 自动重新加载问题

    当我以守护进程模式启动 粘贴 Web 服务器时 它似乎会在源文件的时间戳更新时停止重新加载的能力 这是我启动守护进程的方法 cd project bin paster serve reload daemon development ini
  • COM Interop 和 Outlook - 让 Outlook 可见?

    我正在通过 VB NET 程序自动化 Outlook 根据用户的请求将项目传输到日历和联系人中 一切正常 这不是问题 问题是 当 Outlook 尚未打开时 像这样自动执行 Outlook 会创建一个隐藏实例 我也许可以理解这有什么用处 可
  • MySQL 中前 5 个值的总和

    我有一个 MySQL 表 用于存储赛车锦标赛的结果 因此每一行都包含每个车手在某场比赛中的位置以及其他数据 我想要获得某个车手的前 5 名排名的总和 例如 如果车手的最佳位置是 1 2 2 4 5 我希望 MySQL 返回 14 我想做的是
  • 如何将数据发布到多页谷歌表单?

    我正在尝试通过 POST 自动填写 Google 表单 然而 当我实际将数据发布到其中时 只有第一页的问题实际上被填写了 示例代码 private static void PostToFormTest WebClient client ne
  • 如何在 C# Windows 应用程序中通过计时器控件刷新 Gridview?

    我有一个组合框 在组合框中有多个选项 如 5 秒 10 秒 20 秒等 当我选择任何一个选项时 网格视图会在该特定时间后刷新 以下是在 datagridview 中加载文件的代码 public string Path get set pri
  • 维护滚动位置和回发时的选定控制

    返回另一个基于网络的问题 当控件向服务器发出回发时 页面会刷新 很好 页面也会滚动回顶部并失去所选的控件 如果回发后相关 则根据发生的更改 控件将变得可见或隐藏 即使页面可见性没有任何变化 焦点也会丢失并且当前滚动会重置 在文本字段中输入的
  • 如何立即在网格视图中显示图像的选择

    我有一个问题 我有一个自定义网格视图 其中两个图像 一个是背景图像 第二个是复选标记图像 当我单击网格视图复选标记的一项时 会显示哪个项目显示图像选择 但是当我们想要选择网格视图的第二项 它还会在同一图像上显示复选标记 如下面所附图像所示
  • 在docker容器中安装cygwin时出错:系统找不到指定的路径。 (0x3) error=hcssshim::ImportLayer - 失败 在 Win32 中失败

    我有一个简单的 Dockerfile FROM mcr microsoft com windows 1809 Install chocolatey RUN powershell exe Set ExecutionPolicy Bypass
  • 创建几个相互不兼容的数字类型[重复]

    这个问题在这里已经有答案了 我想创建封装原始数字类型的轻量级类型 struct A long value struct B long value struct C long value 这样我就可以将常用的算术运算应用于每种类型 并获得预期
  • jQGrid - 更改分组标题的背景颜色

    我正在使用 jQGrid 进行分组 每个组标题将具有以下三种可能性之一 Pending Duplicate Not Duplicate 根据该文本 我想更改分组标题的背景颜色 我已经在使用了rowattrjQGrid 的属性来更改网格行的背
  • 使用 NLTK 检查英语语法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我开始使用NLTK库 我想
  • SpringBeanFacesELResolver 的 javax.faces.el.VariableResolver 类转换异常

    我正在尝试升级到 JSF2 和 Spring 3 0 5 当我部署到 Tomcat 时出现以下错误 任何帮助表示赞赏 SEVERE Exception sending context initialized event to listene
  • 如何使用 PHP 动态发布 ical 文件以供 Google 日历读取?

    任何关于 PHP ical 的 Google 搜索都会带来 phpicalendar 以及如何解析或读取 IN ical 文件 我只想编写一个 PHP 文件 从数据库中提取事件并以 ical 格式写出它们 我的问题是我找不到任何地方可以回答
  • 将 Sorbet RBI 添加到 gem 的目录结构是什么?

    我有一个gem我想添加类型 通过提交 PR 或通过分叉仅在我的项目中使用 但是文档除了创建一个 rbi folder 大声思考 是否应该镜像文件lib 添加了类型签名 或者应该是一个大文件 每个版本 就像中的签名一样冰糕型 我还不知道有任何
  • 如何在 iOS 10+ 中自定义通知的简短预览

    我已经在我的应用程序中实现了基于 iOS 的丰富通知本地和远程通知编程指南 我看了WWDC通知简介 高级通知 and 最佳实践 并阅读UNNotificationContentExtension 所有这些都表明我可以实现通知内容扩展来自定义
  • 无需重定向的 Ajax Django 登录/身份验证

    我正在尝试建立类似于 StackOverflow 的身份验证设置 其中正常浏览永远不会受到影响 除非有一些需要身份验证的特权操作 在此之前不要打扰用户 如果未登录 则应为 登录 如果已登录 则应为 用户名 base html 来自fallr
  • Karma 测试在 chrome 中失败,但在 phantomjs 中通过

    我已经为此奋斗了一段时间 似乎找不到正确的解决方案 我正在运行一个使用 Angular 2 测试环境的 ionic 2 项目 当我使用 karmas chrome 启动器运行 ng 测试时 出现以下错误 START 07 12 2016 1
  • Golang 到 wasm 编译

    我使用以下命令将 Golang 代码编译为 wasm GOOS js GOARCH wasm go build o main wasm 尝试使用 wasmtime 执行时出现以下错误 wasmtime main wasm Error fai
  • 如何使用 NAs - R 简单地计算行数[重复]

    这个问题在这里已经有答案了 我正在尝试计算整个 df 的 NA 行数 因为我正在计算 NA 的行数占 df 总行数的百分比 我已经看过这个帖子了 确定具有 NA 的行数但它只显示特定范围的列 tl dr 逐行 你会想要sum complet
  • fullcalendar:有没有办法仅在我通过事件函数加载事件后调用 dayRender

    我正在构建的网络应用程序中使用 fullcalendar 我加载我的事件事件函数和阿贾克斯 这是我的代码 var ajaxData var eventsJsonArray var json backgrundColor var json i