2012-01-23 119 views
0

我正在開發一個Facebook應用程序在JavaScript中,我有一個問題,使用FB.ui打開一個對話框在Facebook牆上分享。我有這樣的代碼:Feed對話框的FB.ui問題,很多對話框一次打開

$('#share_button').click(function(){ 
FB.ui(
{ 
    method: 'feed', 
    name: photo.getName(), 
    link: photo.getUrlView(), 
    picture: +photo.getUrl(), 
    caption: photo.getCaption(), 
    description: photo.getDescription() 
}, 
function(response) { 
    if (response && response.post_id) { 
     alert('Post was published.'); 
    } else { 
     alert('Post was not published.'); 
    } 
} 
) 
}); 

值(名稱,描寫的特徵,圖片,鏈接,標題)要與JS刷新當我點擊其他鏈接吧!當我點擊第一次分享內容時,一切正常,但當內容發生變化並分享新內容時,Facebook會顯示新的對話框,但也會顯示舊的內容...打開所有以前的窗口。

+0

我們需要更多的代碼來看,因爲那部分不是問題。問題是周圍部件的結構。你能分享一個鏈接到一個網址嗎? – DMCS

回答

1

也許,這個問題會發生,因爲你是一個回調結合的Click事件多次...

當你點擊另一個鏈接刷新Facebook的對話內容,您綁定click事件顯示對話框,如果再次綁定click事件,則會有兩個回調綁定到Share按鈕的click事件,然後顯示兩個對話框,因爲在點擊的事件上會調用兩個回調。

爲了解決這個問題,你需要清潔綁定新的回調之前綁定到click事件的回調,所以,你的代碼應該看起來像這樣:

$('#share_button').unbind("click"); 
$('#share_button').click(function(){ 
    ... 
}); 

希望這有助於!

+0

你是老闆!非常感謝。 – erama