我有一个元素,当我点击它打开输入对话框并上传所选照片。服务器使用4个项目作为 JSON OBJECT 响应请求:NAME,TYPE,HEIGHT,WIDTH
。
我想要的是在成功的ajax上传过程之后,使用新上传的照片重新加载/刷新元素背景。到目前为止我还没有这些:
JS:
$(document).ready(function() {
$("input[name!='photo_1']").parents('.fileinput-wrapper').find(".label").remove();
$("input[type=file]").on('change',function(){
$(this).parents('label').find('.fileinput-preview').css('background','url(http://localhost/project/assets/images/ajax-loader.GIF) no-repeat center center');
var selectedElement = this;
var name = $(this).attr('name').toString();
$('#upload').ajaxSubmit({
dataType:'json',
data: {name:name},
beforeSubmit:function(){
$(selectedElement).parents('label').find('input[type=file]').attr('disabled','disabled');
},
success: function(data) {
$(selectedElement).parents('label').find('.fileinput-preview').css('background',"url('http://localhost/project/assets/images/loading.png') no-repeat center center");
$.each(data, function(index, item) {
$(selectedElement).parents('label').find('.fileinput-preview').css('background',"url('http://localhost/project/uploads/"+ item.NAME +") no-repeat center center");//**replacing part**
});
$(selectedElement).parents('label').find('input[type=file]').removeAttr('disabled');
return false;
},
error : function(xhr) {
alert(xhr.responseText);
return false;
}
});
});
});
事情是它取代了右边的背景,但图像没有加载并显示空白。我该怎么办?
答案 0 :(得分:2)
您缺少一个'
:
.css('background',"url('http://localhost/project/uploads/"+ item.NAME +")
应该是
.css('background',"url(http://localhost/project/uploads/"+ item.NAME +")
url参数不需要''
,url(path/to/file.jpg)
工作正常。不过,你只是设置了一个。此外,item.name
是否包含文件extesion?
使用dom检查器检查成功后正在设置的URL,或者执行完整字符串的控制台日志