正如标题所说,它不会在任何版本的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
}
]
]
之后,我在2维数组中循环以获取每个单独的对象并将其推送到另一个数组中,执行此操作的代码是:
for(var i = 0; i < jsonData.length; i++){
for(var k = 0; k < jsonData[i].length; k++){
dataEvents.push(jsonData[i][k]);
}
}
现在,如果我只是手动将上述JSON对象的数组硬编码到fullCalendar的events属性中,那么为什么它在循环创建的数组时不起作用?
IE显示没有错误,没有文件没有加载(或加载两次)。我花了好几个小时研究类似的问题(尾随逗号似乎是最常见的错误)但除了隔离问题之外没有什么特别帮助我。
谢谢,我希望你们能帮助我和其他可能会遇到同样问题解决它的人。
编辑:添加版本。
答案 0 :(得分:0)
在干预了一下之后,我设法让它运转起来。我最后改变了一些事情。首先,将字符串格式更改为使用破折号“ - ”而不是逗号,因此新的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
}
]
]
然后,改变了构建我传递给fullCalendar的对象的方式:
for(var i = 0; i < jsonData.length; i++){
for(var k = 0; k < jsonData[i].length; k++){
/* creating date object instead of string */
var d = new Date(jsonData[i][k]['start']);
/* adding one day, it was showing the previous day (due to localisation?) */
d.setDate( d.getDate() + 1);
/* manually setting the object, and adding 'allDay':true , in my case I need them to be all day events */
dataEvents.push({
'start' : d,
'title' : jsonData[i][k]['title'],
'content' : jsonData[i][k]['content'],
'ID' : jsonData[i][k]['ID'],
'allDay' : true
});
}
}
之后工作正常。我猜IE不能像其他浏览器那样解释字符串。顺便说一句,safari显示与IE相同的结果,它没有显示事件,在此更改后,所有市长浏览器中的所有内容都正常显示。
我会在工作页面上线后发布一个链接(目前存在于我们的私有prod服务器中,但它应该很快迁移到实时服务器)。