这是一段我没有编写的 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,但错误再次发生,据我所知,它至少发生在其他机器。
我的猜测是我正在使用保留关键字或其他东西。我将重写它,因为我不喜欢它的外观,但是有人知道为什么会这样吗?
火狐 14.0.1
萤火虫 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 文件版本与它实际向我显示的版本不同。这有意义吗?我重新开始了整个事情,所以我不知道会发生什么......