我正在开发一个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'});
});
现在单击按钮时会打开两个权限对话框。这是为什么?
答案 0 :(得分:0)
这段代码可能正在运行两次。您可以使用console.log()或警报进行检查。您的原始代码有效,因为“button.onclick = ...”会覆盖以前的onlick事件处理程序,而jQuery使用addEventListener(或IE上的attachHandler),这不会删除prevoius处理程序。
如果是,请尝试
$('#button').unbind('click').click(function() {....});