0

我正在用 javascript 开发一个 facebook 应用程序,但在使用 FB.ui 打开一个对话框以在 facebook 墙上共享时遇到问题。我有这个代码:

$('#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 会显示新对话框,但也会显示旧对话框...打开所有以前的窗口。

4

1 回答 1

1

可能发生此问题是因为您多次将回调绑定到单击事件...

当您点击另一个链接刷新 Facebook 对话框内容时,您绑定click事件以显示对话框,如果click再次绑定事件,则有两个回调绑定到click您的分享按钮的事件,然后,显示两个对话框,因为在单击的事件上调用两个回调。

为了解决这个问题,您需要click在绑定新回调之前清理绑定到事件的回调,因此,您的代码应如下所示:

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

希望这有帮助!

于 2012-01-23T23:10:38.113 回答