【问题标题】:FB.ui problems with Feed Dialog, Many dialog boxes open at onceFeed 对话框的 FB.ui 问题,许多对话框同时打开
【发布时间】:2012-02-17 06:38:30
【问题描述】:

我正在用 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 会显示新对话框,但也会显示旧对话框...打开所有以前的窗口。

【问题讨论】:

  • 我们需要查看更多代码,因为这不是问题所在。问题是周围零件的结构。你能分享一个网址的链接吗?

标签: javascript facebook dialog fb.ui


【解决方案1】:

这个问题的发生可能是因为您多次将回调绑定到点击事件...

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

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

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

希望对您有所帮助!

【讨论】:

  • 你是老板!非常感谢。
猜你喜欢
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多