无法更改变量外部的错误范围

时间:2014-08-28 02:44:09

标签: javascript

我试图在变量进入错误范围后更改变量,我的问题是它在范围内发生了变化,但是在变量保持不变之后立即进行了编码。

我基本上是通过图像循环来查看它们是否存在于远程服务器上,如果它们没有用占位符替换图像。

我不确定这是否是特定于错误范围的?

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);

1 个答案:

答案 0 :(得分:0)

事实证明,错误块是异步的,感谢Barmar。

我使用这段代码代替了很好但是要注意,如果你引用的文件不存在;它将陷入无限循环。

<img src="image_that_does_not_exist.png" onerror="this.src = 'img/placeholder.png'">