这是我未编写的一段jquery / javascript代码,但是我正在尝试在Firebug上调试(我照原样复制/粘贴了它,只是添加了一些空格以进行良好的匹配):
if (control == "#testTakerSearchSource" && object !== undefined && object[key] !== undefined && key == "datasets" && object[key].length >= 3) {
var afterValues = [];
if (object[key].length == 3 && object[key][0] == "1") {
afterValues[0] = "1,2,3";
object[key] = afterValues;
}
else {
var beforeValues = object[key];
afterValues[0] = "1,2,3";
for (var i = 3; i < beforeValues.length; i++) {
afterValues[i - 2] = beforeValues[i];
}
object[key] = afterValues;
}
}
我设置了第一行的断点。它应停止。当我按下F10时,它直接进入
afterValues[i - 2] = beforeValues[i];
行,将几个括号直接跳到for循环中……我当然尝试重新启动FF,但是该错误再次发生,据我所知,它至少发生在另一台机器。我的猜测是我使用的是保留关键字。我将重写它,因为我仍然不喜欢它的外观,但是没有人知道为什么会发生吗?
Firefox 14.0.1
Firebug 1.10.3
jQuery 1.8.0
jQuery-ui 1.8.23
编辑:
我尝试了这个:
try {
if (control == "#testTakerSearchSource" && object !== undefined && object[key] !== undefined && key == "datasets" && object[key].length >= 3) {
var afterValues = [];
if (object[key].length == 3 && object[key][0] == "1") {
afterValues[0] = "1,2,3";
object[key] = afterValues;
}
else {
var beforeValues = object[key];
afterValues[0] = "1,2,3";
for (var i = 3; i < beforeValues.length; i++) {
afterValues[i - 2] = beforeValues[i];
}
object[key] = afterValues;
}
}
}
catch (err) {
alert(err);
}
现在,如果我在同一行上设置一个断点,它将跳转到
object[key] = afterValues;
行。如果我继续,不会发现任何异常...Edit2:其他假设:Firefox的js文件版本与实际显示的版本有所不同。那有意义吗?不过我重新开始了整个过程,所以我不知道会发生什么...
最佳答案
我认为这可能是由于代码中的某些异常所致。我的建议是使用错误处理
try
{
//your code if (control == "#testTakerSearchSource" && .........
}
catch(err)
{
alert(err);
}
修改您的代码