2012-01-23 59 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