删除src
代码上的image
属性似乎无法重绘iOS(7)或Android(KitKat)上的视图。也没有将属性更改为空值。桌面浏览器按预期工作。
此操作会删除属性,但视图并未反映更改:
$('#imgPreview').removeAttr('src');
此操作会更改属性,但视图不会反映更改:
$('#imgPreview').attr('src','');
如果属性更改为有效的图像路径,则视图会更新:
$('#imgPreview').attr('src','http://some/image/path.jpg');
我有一个显示问题的简单测试用例HERE。
在将src
属性更改为空白值或完全删除src
属性后,是否可以强制重绘?
答案 0 :(得分:3)
您可以使用此类代码段强制重绘元素:
$.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();