像按钮这样的Facebook只加载一次

时间:2012-07-05 10:12:56

标签: javascript facebook event-handling facebook-like facebook-javascript-sdk

我添加了facebook like button,但它只在页面上运行一次。该页面由“图块”组成,每个图块都有自己的链接,用户应该能够“喜欢”页面上的任何图块。被调用函数的代码如下:

FB.Event.subscribe('edge.create', handleResponse(response));

var handleResponse = function(response) {
    var query = FB.Data.query('SELECT like_count FROM link_stat WHERE url="some_url_goes_here"');
    query.wait(function(rows) {
        alert('number of likes ' + rows[0].like_count);
        // ... other code
    });
};

当用户按下某个按钮时 - 出现Facebook“喜欢”按钮(e.i。称为函数startFacebook(),其内容在上面给出)以及其他一些社交网络的类似按钮。

前段时间此功能的内容以:

开头
FB.Event.clear('edge.create');

但现在已弃用,Facebook表示不应该再使用它并发送这样的响应:

c   jssdk_error
m   {"error":"Private method used","extra":{"args":"Event.clear"},"appId":"246731078776510"}

当我使用FB.Event.clear时 - 一切正常。有谁知道如何替换这个缺乏功能?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您是否尝试删除事件监听器?
如果是,请使用FB.Event.unsubscribe,就像使用FB.Event.subscribe

一样
var handleResponse = function(response) {
    ...
}

FB.Event.subscribe("edge.create", handleResponse);

...

FB.Event.unsubscribe("edge.create", handleResponse);