使用jquery.ready全局中的选择器创建函数

时间:2017-08-22 21:54:43

标签: javascript jquery

我有一个非常简单的功能:

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

我也不希望函数在加载时执行,但仅在调用时执行。

我怎样才能让它发挥作用。 我已经查看了这些问题,但他们没有帮助

1 个答案:

答案 0 :(得分:3)

在任何其他方法之外创建的方法本质上是全局的。如果要在另一个方法中创建方法,可以通过将其附加到窗口对象(如果您喜欢)或其他全局本身的对象使其成为全局方法,在这种情况下,您必须通过thatObject.yourMethod()将其访问

var objectOutsideAnyMethod = {};
(function(){
    function ImNotGlobal(){}

    window.IAmGlobal = function() {};
    objectOutsideAnyMethod.meToo = function(){};
})();

IAmGlobal(); //valid
objectOutsideAnyMethod.meToo(); //valid
ImNotGlobal(); //error