jquery按钮打开2个权限对话框

时间:2011-09-14 07:37:39

标签: javascript jquery facebook-graph-api

我正在开发一个facebook应用程序,并且每次将jQuery添加到代码中我都会遇到一些奇怪的行为。

这是我的原始代码,工作正常:

button.onclick = function() {
    FB.login(function(response) {
        if(response.authResponse) {
            FB.api('/me', function(info) {
                login(response, info);
            });
        }
        else {

        }
    }, {scope:'publish_stream'});
}

然后我添加了jQuery并改为使用click事件:

$("#button").click(function() {
    FB.login(function(response) {
        if(response.authResponse) {
            FB.api('/me', function(info) {
                login(response, info);
            });
        }
        else {

        }
    }, {scope:'publish_stream'});
});

现在单击按钮时会打开两个权限对话框。这是为什么?

1 个答案:

答案 0 :(得分:0)

这段代码可能正在运行两次。您可以使用console.log()或警报进行检查。您的原始代码有效,因为“button.onclick = ...”会覆盖以前的onlick事件处理程序,而jQuery使用addEventListener(或IE上的attachHandler),这不会删除prevoius处理程序。

如果是,请尝试

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