我有一个main.js
文件,其中包含一个方法:
;(function ($, window, document, undefined) {
'use strict';
var testing = function(d) {
//irrelevant code
};
})(jQuery, window, document);
在我的HTML中,就在</body>
之前,我引用了jquery.js
,紧随其后的是main.js
:
<script src="/Scripts/jquery-2.1.4.js"></script>
<script src="/Scripts/main.js"></script>
然后是需要调用testing
的{{1}}函数的内联脚本:
main.js
我在第<script type="text/javascript">
( function($) {
$( document ).ready(function() {
var data = [];
//..data is then populated and the function is called
testing(data);
});
} ) ( jQuery );
行
未捕获的ReferenceError:未定义测试
为什么会发生这种情况,我该如何解决?如果我的方法错了哪个是正确的?
P.S。这是一个ASP.NET MVC项目
答案 0 :(得分:1)
您的main.js
文件正在调用匿名函数,该函数定义了该范围内的testing
函数。该功能完成后,testing
不再存在。
所以你有几个选择。
将testing
移至全局范围
//main.js
function testing(d) {
//irrelevant code
};
将testing
与其他JS一起移动。
<script type="text/javascript">
(function($) {
function testing() {
...
}
$(document).ready(function() {
// call testing here
});
})(jQuery);
</script>