Javascript 单击时onclick事件未运行命名函数

Javascript 单击时onclick事件未运行命名函数,javascript,Javascript,我期待FBLogin onclick运行下面的查询,但没有发生任何事情。我错过了什么,这意味着它没有按预期工作 我相信这是我的onlick事件的问题,而不是函数本身的问题 <a href="#" onclick="FBLogin();" role="button" class="btn btn-successFbLi btn-lg fa fa-facebook"</i> Sign in with Facebook</a></button><br

我期待FBLogin onclick运行下面的查询,但没有发生任何事情。我错过了什么,这意味着它没有按预期工作

我相信这是我的onlick事件的问题,而不是函数本身的问题

<a href="#" onclick="FBLogin();" 
role="button" class="btn btn-successFbLi btn-lg fa fa-facebook"</i> 
Sign in with Facebook</a></button><br>

您提供的代码中存在错误

  • 错误的锚标签
  • 额外的结束标记(
我在代码中所做的主要更改:

  • 已删除
    onclick
    属性
  • 在javascript中添加了事件侦听器
这是你的电话号码

下面是片段

函数FBLogin(){
//Fb应用程序信息//
警惕(“工作”);
window.fbAsyninit=函数(){
Parse.FacebookUtils.init({
appId:'xxxxxxxxx',
xfbml:是的,
版本:“v2.3”
});
//此处的其余功能等//
}
}
document.getElementById('login')。addEventListener(“单击”,FBLogin)

这与java有什么关系吗/您发布的代码不会起任何作用-您如何知道FBLogin没有被执行?“但什么都没有发生”:这是否意味着没有调用事件处理程序?你怎么知道的?你做了什么来调试这个问题?我猜处理程序是在执行了
fbAsyncint
之后调用的。@Dano007-您一直在做这个断言,但我们问您是如何建立这个断言的。为什么您认为它没有运行?我的意思是,查看
fbAsyncint
并尝试调用它的进程已经运行。
是否要解释内联事件处理程序不工作的原因?应该避免使用内联事件处理程序。来源:。在阅读了这个答案之后,我停止使用内联事件处理程序。确实应该避免使用它们,但它们不是所有问题的根源。你说OP需要改变,但我不明白为什么。盲目地改变现状,希望它能解决问题,这不是一种合理的做法。如您所见,您的fiddle也可以与内联事件处理程序配合使用:。因此,当然没有必要改变这一点。我在回答中改变了陈述。我同意守则不应盲目更改。只是当我修改OP的代码时,我使用了
addEventListener
方法,因为它使代码变得更好。
function FBLogin() {
//Fb app information//

window.fbAsyncInit = function() {
    Parse.FacebookUtils.init({
      appId      : 'xxxxxxxxx',
      xfbml      : true,
      version    : 'v2.3'
    });

//rest of function here etc//


}