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显示没有错误,没有文件没有被加载(或加载两次).我投入了几个小时来研究类似的问题(尾随逗号似乎是最常见的错误)但除了隔离问题之外没有任何特别帮助我的东西.
谢谢,我希望你们能帮助我和其他可能找到相同问题解决它的人.
编辑:添加版本.
经过一番干预后,我设法让它工作。我最终改变了一些事情。首先,将字符串格式更改为使用破折号“-”而不是逗号,因此新的 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]\nRun 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 }\nRun Code Online (Sandbox Code Playgroud)\n\n之后一切正常。我猜 IE 无法像其他浏览器那样解释迄今为止的字符串。顺便说一下,Safari 显示的结果与 IE 相同,但没有显示事件,在此更改之后,所有内容都在所有主要浏览器中正常显示。
\n\n一旦工作页面上线(目前位于我们的私人产品服务器中,但它应该很快就会迁移到实时服务器),我将发布一个指向该工作页面的链接。
\n| 归档时间: |
|
| 查看次数: |
1591 次 |
| 最近记录: |