将JS分解为带有$(document).ready()的文件,但保留范围
break js to files with $(document).ready() but keep scope
我想把我的javascript代码分解成几个.js文件。这些.js中的每一个都有需要位于 $(document).ready(..) 中的代码。因此,在每个文件中,将启动一个新的 $(document).ready(..) 。
如何从 filea 调用 filea.js 在 fileb.js 中声明的函数(两者都在 $(document).ready 块中)?
如果这是不可能的,你能提出一个替代方案吗?谢谢。
编辑:我想澄清一下,我想避免使用全局范围。我希望使用命名函数作为事件的处理程序,但我真的不知道该怎么做。
你可以用
window.globalname = localname;
请记住,函数是变量。
你真的无法摆脱声明全局。创建一个全局并不是那么糟糕,然后你可以在它下的所有函数命名。
把它放在一个类似主.js文件中,这样你就可以在这里保留你的共享函数:
// name this something unique to your page/site/app
var MYAPP = {};
// now we can attach functions to it
MYAPP.funcA = function() { /* ... */ };
MYAPP.funcB = function() { /* ... */ };
然后,在每个匿名函数中,您可以访问 MYAPP.funcA()、MYAPP.funcB() 等。您还可以动态修改 MYAPP 以添加函数、属性等。
最后,你有一个全局(的!),但如果你正确地命名了它,你正在创建一个全局命名空间,你的应用程序代码可以安全地驻留在其中。
只要文件按顺序加载(即filea.js
中的函数在调用它们之前加载fileb.js
,你应该没问题。
为了确保文件首先加载其依赖项,您可以考虑 require.js 或 head.js
我对后者很幸运:http://headjs.com/
相关文章:
- 文件下载后,Document Ready无法工作
- 文件上传文档.ready .on('submit') 提交了两次
- 如何调用 Document.ready 内部的外部.js,方法是从 HTML 传入变量来调用下面的.js文件
- 将JS分解为带有$(document).ready()的文件,但保留范围
- document.ready在外部JS文件中,用于检测加载哪个文件
- 使用不同的变量值多次执行外部javascript文件中的$(document).ready()中的代码
- document.ready,用于具有单个JavaScript文件的多个表单
- 从jQuery$(document).ready(function(){});中的外部JavaScript文件获取变量值
- Javascript文件document.ready()的优先级
- 如何在$.getScript加载的文件中设置$(document).ready函数
- $(document).ready()是否在加载正文中的所有脚本文件后调用
- 我可以避免在每个JavaScript文件中放入$(document).ready()调用吗?
- jQuery ready()是否在所有JS文件加载/执行后触发
- 持有文件.Ready()有时带有jquery holdReady函数
- 将jquery和jquery(document).ready(function(){组合在一个js文件中
- 当在同一HTML页面上使用的两个JavaScript文件中有两个jQuery$(document).ready调用时会发
- 我真的需要更改文件吗?如果我想使用RequireJS,请在ready节中进行修改
- 在多个js文件中具有多个$(document).ready函数的含义
- $(document).ready()中包含外部jQuery文件
- 用几个jquery (document).ready()事件统一单独的js文件的正确方法