我的客户报告此页面上的线性日历存在问题:http://www.portailjeunesselac2m.org/
除了IE(所有版本)
之外,所有浏览器都能正常工作它只显示事件而不执行javascript ...我尝试调试它,但不能"看"为什么失败了...你能帮我一些帮助吗?
因为我不知道在哪里看,我会尝试让html验证它...以防万一! 我修复了10个错误!...也许它可以提供帮助!
*注意3日期必须突出显示:10月8日,10日和24日......
答案 0 :(得分:1)
问题出在这里(timeline.js,第53行)for(j = i; j > 0 && events[j - 1].date > tmp.date; j--)
。 j = 1
,但events
是对象数组,前5个元素为空。它会产生错误Unable to get property 'date' of undefined or null reference
。
由于
,缺少前5个元素if (date == "Invalid Date")
continue;
this.events[i] = {
它会跳过某些事件,但仍会增加i
计数器,将空元素留在数组中。尝试将this.events[i] = {
替换为this.events.push({
,并在结束)
处添加}
。或者使所有date
有效:)
日期无效,因为new Date()
无法识别" 11 01 2014"作为有效日期。尝试将其写成标题为" 2014-01-11" (" YYYY-MM-DD&#34)
ps:快速修复' - 将var date = new Date(eventItems[i].getAttribute("title"));
替换为var date = new Date(eventItems[i].getAttribute("title").replace(/(\d+)\s+(\d+)\s+(\d+)/, '$3-$1-$2'));
for (var i = 0; i < eventItems.length; i++) {
var date = new Date(eventItems[i].getAttribute("title")
.replace(/(\d+)\s+(\d+)\s+(\d+)/, '$3-$1-$2'));
if (date == "Invalid Date")
continue;
this.events.push({
name : eventItems[i].className,
date : date,
day : date.getDate(),
month : date.getMonth(),
year : date.getFullYear(),
content : jQuery(eventItems[i]).text()
});
}