执行回调内链接的默认操作

时间:2013-01-01 22:58:14

标签: javascript jquery backbone.js onclick

我在我的页面上有一个登录facebook的链接,我想操纵onclick的工作方式。目前我已经更改了它,因此它不会通过在结尾添加return false来执行默认操作:

$('#login').on('click', function(e) {
    FB.login(function(response) {
        //window.easyUserData.login = response;
        if (response.authResponse) {
            console.log('authorised');
            return true;
        } else {
            // cancelled
        }
    });
    return false;
});

发生了什么事情就是在调用FB.login打开对话框之后,它会重定向页面,而不是我想要的。我正在寻找的是它做链接的默认动作,我把它返回true。返回true位不起作用,因为当它到达那里时,返回false已经被处理。关于如何做到这一点的任何提示?

链接有href =“#/ home”,我使用backbone.js来处理路由。

1 个答案:

答案 0 :(得分:1)

由于登录功能的异步性,您必须使用javscript重定向:

$('#login').on('click', function(e) {
    var href=this.href;
    FB.login(function(response) {
        //window.easyUserData.login = response;
        if (response.authResponse) {
            console.log('authorised');
            /* redirect here*/
           window.location=href;
        } else {
            // cancelled
        }
    });
    return false;
});