【发布时间】:2011-06-23 13:56:25
【问题描述】:
我正在尝试使用 jquery 上传图片。并且应该在不刷新页面的情况下完成上传。
代码:
var uploader = new qq.FileUploaderBasic({
element: document.getElementById('file-uploader'),
button: $('#account #picture .header')[0],
action: '<?= Route::url('Account Upload Avatar'); ?>',
allowedExtensions: ['png', 'jpg', 'gif'],
onSubmit: function()
{
},
onComplete: function(id, fileName, avatar)
{
$('#loader').hide();
$('#picture img').attr('src', responseJSON + '?' + (new Date).getTime());
}
});
以及我上传图片的位置:
<div id="picture">
<div class="header">
Schimba-ti poza
</div>
<img src="<?= $image->avatar_url ?>"></img>
</div>
问题是:
上传是正确的,但是只有刷新页面才能看到新图片。否则,当我上传一张新图片时,旧图片消失,而是出现一个图像损坏图标,如果我检查该元素,我会看到:<img id="picture" src="undefined?1308840720252"> 所以我得到那个未定义的......我猜这是因为那个 attr .
我正在使用 jquery 1.6.1
有什么想法吗?
谢谢!
【问题讨论】:
-
console.log(avatar) 给你什么?
-
我认为你应该使用 prop 而不是 attr
-
你能在 onComplete 中 console.log avatar.url 看看它的值吗?
-
@Karolis -- 阅读本网站上的图表blog.jquery.com/2011/05/12/jquery-1-6-1-released,了解
prop应该使用什么以及attr应该使用什么 -
@Karolis,这就是新的
prop()函数的工作原理...(您可以查看我的问题stackoverflow.com/questions/5874652/prop-vs-attr 进行辩论)