Javascript 未捕获引用错误:未定义js/jQuery方法
我有一个Javascript 未捕获引用错误:未定义js/jQuery方法,javascript,jquery,html,Javascript,Jquery,Html,我有一个main.js文件,其中包含一个方法: ;(function ($, window, document, undefined) { 'use strict'; var testing = function(d) { //irrelevant code }; })(jQuery, window, document); 在我的HTML中,就在之前,我引用了jquery.js,而main.js紧跟其后: <script src="/Scrip
main.js
文件,其中包含一个方法:
;(function ($, window, document, undefined) {
'use strict';
var testing = function(d) {
//irrelevant code
};
})(jQuery, window, document);
在我的HTML中,就在
之前,我引用了jquery.js
,而main.js
紧跟其后:
<script src="/Scripts/jquery-2.1.4.js"></script>
<script src="/Scripts/main.js"></script>
我在测试(数据)行中得到以下错误:代码>
未捕获引用错误:未定义测试
为什么会发生这种情况?我如何修复它?如果我的方法是错误的,哪一个是正确的
另外,这是一个ASP.NET MVC项目您的main.js
文件正在调用匿名函数,该函数在该范围内定义您的测试
函数。一旦该功能完成,测试将不再存在
所以你有两个选择
将测试
移至全局范围
//main.js
function testing(d) {
//irrelevant code
};
将测试
与其他JS一起移动
<script type="text/javascript">
(function($) {
function testing() {
...
}
$(document).ready(function() {
// call testing here
});
})(jQuery);
</script>
(函数($){
功能测试(){
...
}
$(文档).ready(函数(){
//在这里呼叫测试
});
})(jQuery);
您需要了解,然后才能了解。谢谢,那么不可能从其他范围访问变量吗?不,这就像尝试从位于另一个大陆的杯子中喝咖啡一样。将是最好的术语。在第一个示例中,您的意思是将测试
函数移到}(jQuery、窗口、文档)之后代码>?您看到的是整个文件。啊,好的。它不在函数中,所以它是全局的。根据您的需要,有全局或局部范围的js文件是正常的吗?当然,您可以按任何方式来做。关键是要让你的代码易于理解,这样如果你在一年后回顾你的项目,你就会确切地知道测试在哪里,它做什么,而不是到处寻找.js文件。
<script type="text/javascript">
(function($) {
function testing() {
...
}
$(document).ready(function() {
// call testing here
});
})(jQuery);
</script>