我有一个非常简单的功能:
function loading (text, id) {
console.log("test");
$('#loadingsts').append('<div id="loader"></div>');
}
在javascript文件中定义,该文件通过以下方式加载html:
<script src="js/loader.js"></script>
。
我想在另一个js文件中执行该函数,所以我需要将该函数设置为全局,对吗?
如果我执行是这样的,console.log()
可以正常工作,但是追加却没有。如果我将该函数放入$(function() {});
loading() not defined
。
我也不希望函数在加载时执行,但仅在调用时执行。
我怎样才能让它发挥作用。 我已经查看了这些问题,但他们没有帮助
答案 0 :(得分:3)
在任何其他方法之外创建的方法本质上是全局的。如果要在另一个方法中创建方法,可以通过将其附加到窗口对象(如果您喜欢)或其他全局本身的对象使其成为全局方法,在这种情况下,您必须通过thatObject.yourMethod()将其访问
var objectOutsideAnyMethod = {};
(function(){
function ImNotGlobal(){}
window.IAmGlobal = function() {};
objectOutsideAnyMethod.meToo = function(){};
})();
IAmGlobal(); //valid
objectOutsideAnyMethod.meToo(); //valid
ImNotGlobal(); //error