【问题标题】:jquery attr problemjquery属性问题
【发布时间】: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>

问题是: 上传是正确的,但是只有刷新页面才能看到新图片。否则,当我上传一张新图片时,旧图片消失,而是出现一个图像损坏图标,如果我检查该元素,我会看到:&lt;img id="picture" src="undefined?1308840720252"&gt; 所以我得到那个未定义的......我猜这是因为那个 attr . 我正在使用 jquery 1.6.1 有什么想法吗?

谢谢!

【问题讨论】:

标签: jquery image attr


【解决方案1】:

确保avatar.url 处有一个defined 变量

【讨论】:

  • 是的,我在控制台中收到一个错误:ReferenceError: avatar is not defined 但我无法真正理解它。如何在 avatar.url 定义变量?谢谢!
  • @dana -- 这是给avataravatar.url?
  • 也适用于 avatar.url:console.log(avatar.url) 和 console.log(avatar)
  • @dana 你试过@Alnitak 对console.log(avatar); 的建议?
  • @dana 尝试使用规范中定义的responseJSON 而不是avatar
【解决方案2】:

您的服务器端可能会返回有效的 JSON,该 JSON 将被解析并作为第三个函数参数发送到 onComplete

如果无法接收 JSON,您将收到一个空对象。

做:

console.log(avatar);

在回调中检查第三个参数中的实际内容。

【讨论】:

  • 我在上面发表了评论。它没有定义(头像)
  • 这表明您没有发送有效的 JSON。接下来请向我们展示您的服务器端脚本正在输出什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 2019-12-29
  • 2011-10-25
  • 2012-10-05
相关资源
最近更新 更多