首先:是的,我读过this answer ...而且,是的,脚本之后没有元数据(因为我的页面上没有任何元数据),而且,不,没有超时或者ajax-request
我有以下辅助方法(是的,我本可以制作原型方法......):
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渲染模式&lt; 10中)以下行:
array.splice(index, 1);
但不是第一次调用,而是在任何后续调用(对于相同的数组)......
但是我想不出这个异常发生的原因,因为我在callstack中访问其他行中的数组(正如你所看到的,例如getIndexOfElement,我迭代数组)。 / p>
有人可以帮帮我吗?