你好,当图像上传到服务器时,我有这个回调函数,然后我想把这个图像显示为PHP脚本生成的缩略图
'onComplete' : function(event, ID, fileObj, name,response, data) {
var newfile = '/admin/includes/image.php?filename='+name+'&maxw=150';
$('#uploaded_images').append('<li class="'+ID+'"><img src="/site_images/ajax-loader.gif"" alt="" /></li>').fadeIn('fast');
$.get(newfile, function(){
$('.'+ID).fadeOut().empty();
$("."+ID).append('<img src="'+newfile+'" alt="" />').fadeIn();
});
“.get”jquery函数应该只在加载图像后显示 img 标记(确实如此)问题是当我打印img标记时图像再次加载。这实际上只会淡化图像的“容器”。图像将仅在加载时继续显示且没有任何效果。 有没有办法我可以安排脚本使用“get”缓存的图像,或者只在直接加载图像时实际打印所有内容?
谢谢
答案 0 :(得分:1)
而不是$.get()
,请使用图片的.load()
事件,如下所示:
$("<img />").load(function() {
var img = this;
$('.'+ID).fadeOut(function() { $(this).html(img); }).fadeIn();
}).attr("src", newfile);
这样做是因为我们正在创建的图像元素完成加载,淡出.ID
元素,当淡入淡出完成时,将内容设置为<img>
元素(.html(elem)
是.empty().append()
)的快捷方式,然后将其淡入。