如何使用另一个.js文件中的函数?

时间:2017-12-25 10:28:33

标签: javascript jquery function getscript

以下是我的代码的简化:

// script1.js
$(document).ready(function(){
    .
    .
    function myfunc(){ ... }
    .
    .
});


// script2.js
$(document).ready(function(){
    .
    .
    //doesn't work
    $.getScript("./script1.js");
    // anyway I need to call myfunc() here ... how can I access it?
    .
    .
});

正如您所看到的,我已使用$.getScript()来请求sccript1.js文件,但仍然未定义myfunc()。我该怎么处理?

4 个答案:

答案 0 :(得分:1)

  

如您所见,我使用$ .getScript()来要求sccript1.js文件,   但仍然没有在那里定义myfunc()。我该怎么处理?

myfuncdocument.ready事件中定义且未全局曝光,因此您无法在另一个不在内的函数中使用相同的内容这份文件就绪事件

您需要 全局导出此功能 在document.ready event 之外定义它。

全球导出功能

$(document).ready(function(){
    .
    .
    function myfunc(){ ... }
    window.myfunc = myfunc; //this line added here
    .
    .
});

之外定义
$(document).ready(function(){
    .
    .

    .
    .
});
function myfunc(){ ... }

答案 1 :(得分:0)

尝试:

var myfunc=null;
// script1.js
$(document).ready(function(){
    .
    .
    myfunc = function (){ ... }
    .
    .
});


// script2.js
$(document).ready(function(){
    .
    .
myfunc();
.
});

答案 2 :(得分:0)

// util.js中

var test = (function (){
return {
myfunc : function (){ ... }
}
})();

// script1.js

$(document).ready(function(){
  test.myfunc();
});

// script2.js

$(document).ready(function(){
   // $.getScript("./script1.js");
   test.myfunc()
});

在您的HTML中,您应该下订单

<script src="util.js"></script>
<script src="script1.js"></script>
<script src="script2.js"></script>

答案 3 :(得分:-1)

尝试使用绝对路径。例如https://example.com/js/script1.js而不是./script1.js