按下按钮更新img src

时间:2011-11-26 05:36:48

标签: javascript jquery facebook-graph-api

我编写了一个简单的函数来获取经过身份验证的用户的个人资料图片并为其设置<img>。虽然src属性正在正确更新,但图像实际上并未更改。

function getDefault(){
    FB.api('/me', function(response) {
        $('#default').val("http://graph.facebook.com/" + response.id + "/picture");
    });
    alert($('#default').val());
    }

...

<img id="default" src="getDefault()"/>
<button onclick="getDefault()">Click to see your profile picture!</button>

2 个答案:

答案 0 :(得分:1)

该属性不是“值”。这是“src”。所以......它应该是这样的:

$('#getDefault').click(function(){
    FB.api('/me', function(response) {
        $('#default').attr('src', 'http://graph.facebook.com/' + response.id + '/picture');
        alert($('#default').attr('src'));
    });

});

<img id="default" src="getDefault()"/>
<button id="getDefault">Click to see your profile picture!</button>

更新?:此外,警报应该在里面,因为你可能不会在外面获得任何价值......

答案 1 :(得分:1)

为什么要将src设置为不返回值的函数调用?这将给你一个未定义的.src值。 src需要是一个网址。您可以通过从函数返回URL或将.src属性直接设置为URL来实现此目的。此外,图片没有.value属性。

将您的HTML更改为:

<img id="default"/>
<button id="getDefault">Click to see your profile picture!</button>

你的JS对此:

$('#getDefault').click(function(){
    FB.api('/me', function(response) {
        $("#default").attr('src', 'http://graph.facebook.com/' + response.id + '/picture');
    });
});