我正在尝试使用主干点击处理程序来打开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>
答案 0 :(得分:0)
它会尝试在#fblogin
中找到#main
并将onClick
绑定到它,我认为这就是为什么它不起作用(根据您提供的HTML),因为#fblogin
不在#main
范围内。
尝试:
var MainView = Backbone.View.extend({
el : "div.social-login",
...