2011-11-26 42 views
0

我已经写了一个简单的函数来获取已认证的用户的个人资料图片并将<img>设置为此。虽然src属性正在更新,但图像实际上并未改变。更新按钮上的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> 

回答

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

你为什么会设置src到不返回值的函数调用?这会给你一个未定义的.src值。 src需要是一个URL。您可以通过从您的函数返回一个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'); 
    }); 
}); 
+0

你的意思是,按钮的ID应该是'getDefault',不是函数调用点击? – Chris

+0

@Chris - 对不起,我不明白你的问题。 – jfriend00

+0

你的按钮的'onclick =“getDefault”'但不会.click函数覆盖? – Chris