事件对象属性“源”返回[对象对象]

迈克尔·B

我想根据事件对象的来源以不同的方式呈现事件,尽管完整的日历文档指出

source “事件源对象。自动填充。对该事件来自的事件源的引用。”

我无法查询事件对象的“源”属性。

console.log(event.source); 结果是 [object Object]

我正在使用多个Google日历eventSources,但是文档中似乎没有任何内容表明我不应该这样做。

我最初计划基于已过滤的eventSources(通过一个自定义按钮触发,该按钮调用包含复选框的模式)来渲染事件,但是在最终决定对此付诸东流之前,我花了很多时间阅读文档,代码示例和大量建议。理念。最后,我使用“ removeEventSources”删除了所有eventSources,然后使用“ addEventSource”(取决于选择了哪些过滤器选项)一一添加每个源。

似乎没有内置的机制或直接的功能来过滤eventSources(尤其是Google Calendars),而且我怀疑查询Event Object的“ sources”属性的能力将使我们能够采用不同的方法来实现这种功能并改善负载次。

其他用例示例:

如果要在eventClick或渲染上确定“源”,以决定是否使用某些字段,例如

if event source == Holiday Cal do not display event.start & event.end

要么

if source == eventSource1 use Modal1 else use Modal2

等等

所以我的问题是:

有谁知道为什么我不能查询以下链接中记录的事件对象的“源”属性?

https://fullcalendar.io/docs/event-object

Fullcalendar文档屏幕截图:

在此处输入图片说明

不要惊慌

您看到的消息告诉您这event.source是一个对象,因此console.log()不会告诉您太多。console.dir()包括:

...
calendar: t {loadingLevel: 0, ignoreUpdateViewSize: 0, freezeContentHeightDepth: 0, el: w.fn.init(1), viewsByType: {…}, …}
className: ["TestCase"]
googleCalendarId: "[email protected]"
... etc

您可以使用这些属性中的任何一个来测试您正在查看的源,例如(不确定为什么className是数组,但这与该问题无关):

$target = (event.source.className[0] === 'HolidaysUK') ? $modal1 : $modal2;

这是一个经过简化的Codepen,它会根据来源以不同的方式在单击时打开事件,据我了解,这就是您要尝试做的事情之一。

旁注-如果您尝试创建问题的最小,完整和可验证的示例则可以使ppl更加轻松地提供帮助您的Codepen包含了与问题完全无关的大量内容,在查看问题时,我们必须进行深入研究,评估和丢弃。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章