Javascript";至于;第一次循环未完全执行
我正在开发一个日历功能,用于在CMS中显示数据库表数据 我用JS生成了一个日历表。数据库条目在C#中生成,并放入数组中。最终结果如下所示:Javascript";至于;第一次循环未完全执行,javascript,Javascript,我正在开发一个日历功能,用于在CMS中显示数据库表数据 我用JS生成了一个日历表。数据库条目在C#中生成,并放入数组中。最终结果如下所示: var Termine = new Array(4); Termine[0] = { ID:1, Datum:1442912403000, Titel:"Test", Detail:"Some encoded HTML" }; Termine[1] = { ID:2, Datum:1444306500000,
var Termine = new Array(4);
Termine[0] = {
ID:1,
Datum:1442912403000,
Titel:"Test",
Detail:"Some encoded HTML"
};
Termine[1] = {
ID:2,
Datum:1444306500000,
Titel:"Testing a bit more",
Detail:"Some encoded HTML"
};
Termine[2] = {
ID:3,
Datum:1442880000000,
Titel:"Test 2",
Detail:"Some encoded HTML"
};
Termine[3] = {
ID:4,
Datum:1442932140000,
Titel:"Test 3",
Detail:"Some encoded HTML"
};
现在,我在函数中循环遍历此数组,并将约会(div)添加到表中:
function addTermine() {
for (var i = 0; i < Termine.length; i++) {
var t = Termine[i];
var d = new Date(t.Datum);
d.setTime(d.getTime() + d.getTimezoneOffset() * 60 * 1000);
if (d.getFullYear() === currentYear && d.getMonth() === currentMonthInt-1) {
var ID = d.getFullYear() + "-" + d.getMonth() + "-" + d.getDate();
var longID = d.getFullYear() + "-" + d.getMonth() + "-" + d.getDate() + "-" + d.getHours() + "-" + d.getMinutes();
var hour = d.getHours();
if (hour < 10) hour = "0" + hour;
var min = d.getMinutes();
if (min < 10) min = "0" + min;
var s = "<div id=\"ter" + longID + "\" class=\"termin\" onmouseover=\"showDetail(event,'detail" + longID + "');\" onmouseout=\"hideDetail('detail" + longID + "');\">" + hour + ":" + min + "<br>" + t.Titel + "</div>";
$("#cont" + ID).html($("#cont" + ID).html() + s);
$("#ter" + longID).click(function () {
location.href = window.location.href + "?cid=" + cid + "&col=" + t.ID + "&details=1";
});
var detail = "<div id=\"detail" + longID + "\" class=\"hoverDetail\">" + unescape(t.Detail) + "</div>";
$("body").append(detail);
}
}
}
函数addTermine(){
对于(变量i=0;i“+t.滴度+”;
$(“#cont”+ID).html($(“#cont”+ID).html()+s);
$(“#ter”+longID)。单击(函数(){
location.href=window.location.href+“?cid=“+cid+”&col=“+t.ID+”&details=1”;
});
var-detail=“”+unescape(t.detail)+”;
$(“正文”)。附加(详情);
}
}
}
问题是,当第一次执行此函数时(从document.ready
),即使调试器中的Termine.length
为4,for循环也只执行一次。当我在更改月份以加载该月份约会后执行函数时,它会正确执行
如果有人能告诉我为什么它在第一次尝试时不能正确执行,我将不胜感激
我正在我们的开发网站上测试它,请随意调试。您的第一个日历元素使用url
/xtend/javascript/messages\u de.js
添加到dom中。当浏览器加载此脚本时,会导致javascript错误
$。验证程序未定义
此javascript错误导致进一步的javascript处理停止。这里也有一个竞争条件,有时候javascript会在加载坏脚本之前继续,在这种情况下,日历上会有4个新的div
出现此错误是因为新注入的javascript代码试图使用jQuery,而您没有包括它。您怎么知道它没有完全执行?可能您的条件不满足?可能与显示第一个div
$后发生的javascript错误有关。当我调试代码时,validator未定义,在for循环的第一行上有一个断点,它只停止一次,然后退出循环@Jamiec在哪个浏览器中测试它?我使用的是当前的谷歌浏览器,没有收到错误信息。虽然我得到了未捕获类型错误:无法读取未定义的@fluegu的属性“messages”-在本例中,FF给出了一条更有意义的错误消息,但是如果您查看错误的代码行($。validator
是“未定义”的,并且它没有属性消息),Chrome给出了相同的问题@我以为你有错误,但你没有包括在内。非常感谢。不知怎么的,那个错误消息没有传到我的控制台。添加了JQueryValidate,现在它可以工作了