2013-01-01 39 views
0

我有一個在我的頁面上用Facebook登錄的鏈接,我想操縱onclick的工作方式。目前,我已經改變了它,使它不加返回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

由於您的登錄功能的異步性,你將不得不使用一個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; 
});