删除图像src属性

删除image标记上的src属性似乎不会重绘iOS(7)或Android(KitKat)上的视图。 也没有将属性更改为空值。 桌面浏览器按预期工作。

这会移除属性,但视图不会反映更改: $('#imgPreview').removeAttr('src');

这会改变属性,但视图不反映变化: $('#imgPreview').attr('src','');

如果属性更改为有效的图像路径,则视图将更新: $('#imgPreview').attr('src','http://sofzh.miximages.com/javascript/path.jpg');

我在这里有一个简单的测试用例来说明问题。

有没有办法可以在将src属性更改为空值或完全删除src属性后强制重绘?

您可以使用这种代码段强制元素重绘:

 $.fn.redraw = function(){ return this.hide().show(0); }; 

或者更好:

 $.fn.redraw = function(){ return this.each(function(){ var zIndex = $(this).css('z-index'); $(this).css('z-index',-1).css('z-index',zIndex); }); }; 

然后用它作为例如:

 $('#imgPreview').removeAttr('src').redraw();