JQuery 完整日历在月视图中的错误日期呈现事件

JQuery FullCalendar rendering events on wrong day in month view

本文关键字:错误 日期 事件 视图 日历 JQuery      更新时间:2023-09-26

>编辑 tl;dr:找出暂时导致问题的原因,IE 兼容模式在 IE2.5 10.0.34 中破坏了此插件 (v10

(

编辑:我是一个菜鸟,它是IE10。即使考虑到我已经关闭了拖放并编辑IE10,也不知何故构建错误。我几乎所有的测试都是在IE10中进行的,因为它是内部Web应用程序的强制性浏览器,完整日历在其页面上显示IE8 +兼容性,因此直到现在我才出于绝望/愤怒而跨浏览器对其进行测试。有人对此有问题吗?任何想法如何解决它或如何追踪问题?它有点超出我的驾驶室,但我希望这个东西起作用,通过上帝,我会让它工作或死亡尝试。

我试图使用完整日历作为简单显示的前端的一部分。Web应用程序与Oracle Portal一起提供,这可能有一些影响。

这是日历初始化脚本,它绑定到一个div,所以没有什么花哨的:

<script>
$(document).ready(function() {
    var events = [];
    var e = {}
    <%FOR event_rec in month_events LOOP%>
    e = {
                id: "<%=event_rec.event_id%>",
                title: "<%=event_rec.event_name%>",
                start: "<%=event_rec.event_day%>T<%=to_char(event_rec.start_hr,'FM00')%>:<%=to_char(event_rec.start_min,'FM00')%>:00",
                end: "<%=event_rec.event_day%>T<%=to_char(event_rec.end_hr,'FM00')%>:<%=to_char(event_rec.end_min,'FM00')%>:00",
                description: "<%=event_rec.notes%>"
        };
    events.push(e);
    <%end LOOP;%>
    $("#calendar").fullCalendar({
        header: {
            left: "prev,next",
            center: "title",
            right: "month,basicWeek,basicDay"
        },
        titleFormat: 'MMMM D, YYYY',
        buttonText: {
            prev: 'Previous',
            next: 'Next'
        },
        defaultDate: "<%=v_default_date%>",
        editable:false,
        allDayDefault:false,
        eventStartEditable:false,
        eventDurationEditable:false,
        eventLimit:true,
        eventOrder:"start", 
        dayClick: function(date, jsEvent, view) {
                //Open day by clicking on tile
                $('#calendar').fullCalendar( 'gotoDate', date );
                $('#calendar').fullCalendar( 'changeView', "basicDay" );
        },
        timezone : 'local'      
    });
    $('#calendar').fullCalendar('addEventSource',events);
});

那些 <%= %> 标签表示它在哪里调用 oracle 门户背后的虚假代码,它正在循环通过一个小光标,是的,这不是执行此操作的理想方式,但这是我所能做的。

在页面加载/呈现时看起来像这样:

e = {
                id: "1",
                title: "Test Event 1",
                start: "2015-12-10T11:00:00",
                end: "2015-12-10T14:00:00",
                description: "Testing Notes"
        };

现在是有趣的部分:

图像

看到那些用红色圈出的日子了吗?那些日子没有活动,所有事件都在 10 日和 12 日。我一辈子都想不通为什么这些事件会出现在错误的日子里。第一个想法是我正在填写的数组的数据问题,就像键入错误或格式错误一样,但所有日期的开始/结束时间都相同,因为我在制作测试用例时一开始没有更改这些值。

有什么想法吗?我完全没有他们。通常在这种情况下,这是我忽略的小事情,一旦我寻求帮助,我就会发现它。我寄希望于这个,或者比我更聪明的人来发现搞砸了。

IE10 (10.0.34( 中的兼容模式会中断 2.5 版的完整日历应用程序(或 JQuery(,使事件在月视图中呈现在错误的日期单元格上,但在日期或周视图中保持正确。

关闭它至少暂时解决了我的问题(如果您正在运行在某些情况下需要兼容模式的旧应用程序,就像我一样来自地狱的过时意大利面条代码的大杂烩中,这可能不是一个可行的长期解决方案(