JQuery FullCalendar在错误的每月视图中呈现事件

时间:2015-12-21 15:54:06

标签: javascript jquery fullcalendar portal

EDIT TL; DR:找出导致问题的原因,IE兼容模式在IE10 10.0.34中打破了这个插件(v2.5)

编辑:我是一个菜鸟,它是IE10。即使考虑到我已经关闭拖放和编辑IE10正在以某种方式构建错误。我几乎所有的测试都在IE10中,因为它是内部网络应用程序的强制浏览器,fullcalendar显示IE8 +在其页面上的兼容性,所以我没有在浏览器中测试它,直到刚出现绝望/愤怒。有没有人有这个问题?任何想法我如何解决它或如何去做也许可以追踪问题?它有点超出了我的驾驶室,但是我希望这个东西可以工作,而且我会让它工作或者死去尝试。

我试图将fullcalendar用作简单显示的前端的一部分。 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);

});

那些&lt;%=%&gt;标签表示它正在调用oracle门户后面的虚假代码,它循环通过一个小光标,是的,这不是一个理想的方法,但这是我能做的全部。

在页面加载/渲染时看起来像这样:

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

现在有趣的部分:

Image

看那些日子以红色圈出?那些日子没有活动,所有活动都在10日和12日举行。我不能为我的生活找出为什么这些事件在错误的日子里显示出来。首先想到的是我正在填充的数组的数据问题,比如输入错误或格式错误但所有日期都有相同的开始/结束时间,因为我在制作测试用例时没有首先更改这些值。

有什么想法吗?我完全不在他们身边。通常在这些情况下,我忽略了一些小事,一旦我寻求帮助,我就会发现它。我很依赖这个,或者比我聪明的人发现搞砸了。

1 个答案:

答案 0 :(得分:0)

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

关闭它至少暂时解决了我的问题(如果你正在运行那些需要兼容模式的遗留应用程序,对于像我这样过时的意大利面条代码的大杂烩,这可能不是一个可行的长期固定)