【问题标题】:How to make addEventListener work for Javascript functions in a separate file?如何使 addEventListener 在单独的文件中为 Javascript 函数工作?
【发布时间】:2018-08-25 03:35:54
【问题描述】:

我目前有document.addEventListener('DOMContentLoaded', functionName);,它通过以下函数作为参数:

function functionName() {
  $.ajax({
    type: 'GET',
    url: '/populatePage',
    success: function(data) {
      createPage(data);
    }
  })
}

问题描述:

当上述函数与document.addEventListener('DOMContentLoaded', functionName); 行位于同一javascript 文件中时,页面加载正常。

但是当函数保存在单独的javascript文件中,然后包含在上面一行的文件中时,页面不会加载。

我可能在这里遗漏了一些基本的东西,但谁能解释一下?

【问题讨论】:

  • 你是否在document.addEventListener('DOMContentLoaded', functionName);之后加载了包含functionName的js文件?
  • 我之前已经加载过了
  • 任何控制台错误?
  • 我看不到任何控制台错误。但作为说明,我使用的是 main.handlebars,其中包含所有必要的 javascript
  • 尝试添加一些调试语句来验证 JavaScript 的加载顺序。

标签: javascript jquery ajax dom


【解决方案1】:

使其成为全局函数。 这是不可取的,但如果你想快速解决,那么

window.functionName = function() {
  $.ajax({
    type: 'GET',
    url: '/populatePage',
    success: function(data) {
      createPage(data);
    }
  })
}

【讨论】:

  • 它应该是默认的。他说他没有控制台错误(因此没有函数未定义错误)
  • 这是 javascript 加载顺序。谢谢您的帮助。将此标记为已解决
猜你喜欢
  • 2013-04-22
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2014-10-17
  • 2022-07-12
相关资源
最近更新 更多