2011-11-26 44 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