以下是我的代码的简化:
// 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()
。我该怎么处理?
答案 0 :(得分:1)
如您所见,我使用$ .getScript()来要求sccript1.js文件, 但仍然没有在那里定义myfunc()。我该怎么处理?
myfunc
在document.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