我的应用程序中发生了一些非常奇怪的事情。
我需要通过$ .getScript加载JS,因为我需要动态加载它。
如果我通过像
这样的html加载它<script src="http://otherproject/project/test.js"></script>
一切正常。
但是,如果我通过$.getScript(http://otherproject/project/test.js)
我收到undefined is not a function
错误。
这是我的JS
test.js
Myproject = (typeof Myproject !== "undefined") ? Myproject : {};
Myproject.common = (typeof Myproject.common !== "undefined") ? Myproject
.common : {};
$(document).ready(function() {
TEST = new Myproject.common.Init();
// Uncaught TypeError: undefined is not a function here
});
Myproject.common.Init = (typeof Myproject.common.Init !== "undefined") ? Myproject
.common.Init : (function() {
//more codes…..
我不知道如何解决这个问题,因为我的大脑现在真的很油腻。任何人都可以帮我这个吗?非常感谢!
答案 0 :(得分:1)
这是一个简写的Ajax函数,你需要使用回调,因为它是异步的
$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
console.log( data ); // Data returned
console.log( textStatus ); // Success
console.log( jqxhr.status ); // 200
console.log( "Load was performed." );
});
上面的示例回调结构^
jQuery.getScript( url [, success ] )
&lt; - 连锁承诺提供更多回拨。或写自己的。
$.getScript(http://otherproject/project/test.js)
^这不是使用回调而且不正确,因为您的URL参数不是String类型。因此,为什么你的代码不知道它的功能是什么......