我试图在变量进入错误范围后更改变量,我的问题是它在范围内发生了变化,但是在变量保持不变之后立即进行了编码。
我基本上是通过图像循环来查看它们是否存在于远程服务器上,如果它们没有用占位符替换图像。
我不确定这是否是特定于错误范围的?
var featuredItems = [];
var normalItems = [];
//Change the image so we source all images for the same size.
$.each(items, function(){
var lastDot = this['image'].lastIndexOf('.');
var item = this;
item['image'] = item['image'].substring(0, lastDot - 1) + '19.jpg';
$("<img>",
{
src: item['image'],
error: function()
{
//Error scope.
console.log(item['image'] + " does not exist.");
//This will not change.
item['image'] = "img/placeholder.png";
}
});
if(item['featured'])
{
featuredItems.push(item);
}
else
{
normalItems.push(item);
}
});
items = featuredItems.concat(normalItems);
答案 0 :(得分:0)
事实证明,错误块是异步的,感谢Barmar。
我使用这段代码代替了很好但是要注意,如果你引用的文件不存在;它将陷入无限循环。
<img src="image_that_does_not_exist.png" onerror="this.src = 'img/placeholder.png'">