jQuery Fullcalendar不在IE中呈现事件

Vic*_* D. 5 javascript ajax jquery json fullcalendar

正如标题所说,它不会在任何版本的IE上呈现事件.

使用7到10的IE,没有任何版本呈现该事件.Jquery 1.11.0和fullCalendar 1.6.4.

如果我手动输入事件它可以很好地工作,但是我从ajax调用中获取的事件根本不显示任何事件,所有其他浏览器显示它们没有问题.

我从一个ajax调用中获取我的事件,然后我将其解析为一组JSON对象.从我的电话收到的原始数据如下所示:

[
  [
    {
      "start": "2014,05,01",
      "title": "Event test 2",
      "content": "Avec du texte pour en mettre plus",
      "ID": 153
    }
  ],
  [
    {
      "start": "2014,04,16",
      "title": "Event test",
      "content": "<p>Du texte pour le premier événement.</p>",
      "ID": 118
    }
  ],
  [
    {
      "start": "2014,04,10",
      "title": "Event test",
      "content": "<p>Du texte pour le premier événement.</p>",
      "ID": 118
    }
  ]
]
Run Code Online (Sandbox Code Playgroud)

之后,我在2维数组中循环以获取每个单独的对象并将其推送到另一个数组中,执行此操作的代码是:

for(var i = 0; i < jsonData.length; i++){           
  for(var k = 0; k < jsonData[i].length; k++){
    dataEvents.push(jsonData[i][k]);
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我只是手动将上述JSON对象的数组硬编码到fullCalendar的events属性中,那么当它由循环创建的数组时,为什么它不起作用?

IE显示没有错误,没有文件没有被加载(或加载两次).我投入了几个小时来研究类似的问题(尾随逗号似乎是最常见的错误)但除了隔离问题之外没有任何特别帮助我的东西.

谢谢,我希望你们能帮助我和其他可能找到相同问题解决它的人.

编辑:添加版本.

Vic*_* D. 0

经过一番干预后,我设法让它工作。我最终改变了一些事情。首先,将字符串格式更改为使用破折号“-”而不是逗号,因此新的 JSON 对象如下所示:

\n\n
[\n  [\n    {\n      "start": "2014-05-01",\n      "title": "Event test 2",\n      "content": "Avec du texte pour en mettre plus",\n      "ID": 153\n    }\n  ],\n  [\n    {\n      "start": "2014-04-16",\n      "title": "Event test",\n      "content": "<p>Du texte pour le premier \xc3\xa9v\xc3\xa9nement.</p>",\n      "ID": 118\n    }\n  ]\n]\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,改变了我构造传递给 fullCalendar 的对象的方式:

\n\n
    for(var i = 0; i < jsonData.length; i++){           \n        for(var k = 0; k < jsonData[i].length; k++){\n            /* creating date object instead of string */\n            var d = new Date(jsonData[i][k][\'start\']);\n\n            /* adding one day, it was showing the previous day (due to localisation?) */\n            d.setDate( d.getDate() + 1);\n\n            /* manually setting the object, and adding \'allDay\':true , in my case I need them to be all day events */\n            dataEvents.push({\n                        \'start\' : d,\n                        \'title\' : jsonData[i][k][\'title\'],\n                        \'content\' : jsonData[i][k][\'content\'],\n                        \'ID\' : jsonData[i][k][\'ID\'],\n                        \'allDay\' : true\n                    });\n        }\n\n    }\n
Run Code Online (Sandbox Code Playgroud)\n\n

之后一切正常。我猜 IE 无法像其他浏览器那样解释迄今为止的字符串。顺便说一下,Safari 显示的结果与 IE 相同,但没有显示事件,在此更改之后,所有内容都在所有主要浏览器中正常显示。

\n\n

一旦工作页面上线(目前位于我们的私人产品服务器中,但它应该很快就会迁移到实时服务器),我将发布一个指向该工作页面的链接。

\n