首先:是的,我已经阅读了这个答案......而且,是的,脚本之后没有元数据(因为我的页面上没有任何元数据),并且,不,没有超时或ajax请求
我有以下辅助方法(是的,我可以制作一个原型方法......):
function removeElementFromArray(array, compareMethod) {
if (!array) {
return;
}
if (!$.isFunction(compareMethod)) {
return;
}
var index = getIndexOfElement(array, compareMethod);
if (index < 0) {
return;
}
array.splice(index, 1);
}
function getIndexOfElement(array, compareMethod) {
if (!array) {
return -1;
}
if (!$.isFunction(compareMethod)) {
return -1;
}
for (var i = 0; i < array.length; i++) {
var element = array[i];
if (compareMethod(element)) {
return i;
}
}
return -1;
}
我打电话给这个:
$foo.on('click', function () {
removeElementFromArray(window.myArray, function (element) {
return // some condition
});
});
我在以下行中收到异常“SCRIPT5011:无法从释放的脚本中执行代码”(仅在 IE 渲染模式 < 10 中):
array.splice(index, 1);
但不是在第一次调用时,而是在任何后续调用时(对于同一个数组)......
但是我想不出这个异常发生的单一原因,因为我正在其他行以及调用堆栈中访问数组(如您所见,例如 getIndexOfElement,我在其中迭代数组)。
有人可以帮帮我吗?