在多个文件中编写一个函数名的Javascript

Javascript one function name in multiple files

本文关键字:一个 函数 Javascript 文件      更新时间:2023-09-26

我需要的非常简单,尽管我不知道是否可能。。

我将所有的事件处理程序都附加到对象本身,而不是$(document)

但是,我需要将它们附加到.ready()方法上,以确保在附加处理程序之前创建对象。由于要附加许多处理程序,为了使代码更干净,我想创建一个名为attachHandlers()的函数,该函数将在document.ready()上调用。

但是。。此函数应该执行多个文件中的代码。

我的问题是…有没有一种方法可以多次声明同一个函数,然后只调用一次就可以全部执行?

但是。。此函数应该执行多个文件中的代码。

我的问题是…有没有一种方法可以声明相同的函数多次,然后只调用一次就可以全部执行?

如果正确解释"问题",则需要从.ready()的多个文件中请求javascript。您可以创建一个包含要请求的文件的url的数组,使用$.when()$.map()$.getScript()调用文件中的javascript

jQuery.getScript( url [, success ] )返回:jqXHR
说明:使用GET HTTP请求从服务器加载JavaScript文件,然后执行它。

脚本是在全局上下文中执行的,因此它可以引用其他变量,并使用jQuery函数。包含的脚本可能有对当前页面的影响。

$(document).ready(function){

  var files = ["1.js", "2.js", "3.js"];
  $.when.apply($, $.map(files, function(file) {
    // request file
    return $.getScript(file)
  }))
  .then(function() {
    // complete
    // do stuff
  }, function err(jqxhr, textStatus, errorThrown) {
    // handle error
  });
});

创建一个全局JS文件,该文件具有此函数(以及您希望在所有页面上运行的未来函数)。在head元素中的每个文件的顶部调用此脚本。在脑海中呼唤它应该能满足你的需求(至少这是我在项目中使用的,对我有用)。

是否可以将多个文件打包到模块中,并且每个模块都有一个方法attachHandlers?然后尝试使用requirejs来加载所有它们。在document.ready中,从所有这些模块调用attachHandlers方法?会更整洁