Backbone Popblock点击事件

时间:2014-07-23 03:46:33

标签: javascript jquery facebook backbone.js requirejs

我正在尝试使用主干点击处理程序来打开Facebook登录窗口,但点击事件正在注册为弹出窗口并被浏览器阻止。

我的点击事件调用外部函数facebookStatus(),其中包含FBlogin。

我知道如何使用下面的设置将Fblogin绑定到click事件?

Main.js

var MainView = Backbone.View.extend({

el : "#main",
model: false,
shareModel: false,

events: {
  'click #fblogin' : 'onClick',

},

onClick: function(e) {

  var self = this;
  e.preventDefault();

  if (typeof (FB) != "undefined") {

    $(".social-login").html("Por favor espera...");
    facebookStatus(self.model);

  } else {
    alert("Please wait Facebook APP is ready");
  }

  return false;
}

});

facebookSDK.js

function facebookStatus(model) {


var data = new Object();
data.action = "login";

var display = 'popup';
var iOS = ( navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );
console.log(iOS);
if (iOS) {
  display = 'touch';
  FB.login(function(response) {
    if (response.status=="connected"){
      console.log("7");
      data.token = response.authResponse.accessToken;
      model.fetch({data:data,type:'POST'});
    }
  }, {scope: 'user_about_me,user_likes'});

}};

HTML

<div id="main">    
  <div class="social-login">
        <a id="fblogin" href="javascript;">
            <img src="img/facebooklogin.png">
        </a>
    </div>
  </div>

1 个答案:

答案 0 :(得分:0)

它会尝试在#fblogin中找到#main并将onClick绑定到它,我认为这就是为什么它不起作用(根据您提供的HTML),因为#fblogin不在#main范围内。

尝试:

var MainView = Backbone.View.extend({

el : "div.social-login",

...