我正在使用ASP.net
和JQuery
。
在一个Aspx页面中,我有很多Js页面。
现在我又添加了一个Js文件(比如page1.js
),我正在调用一个函数从page1.js
到另一个js文件(page2.js
),它也包含在同一个Aspx页面中。
当我尝试从Page1Func
调用方法(page2.js
)时,我收到了未定义的错误消息。
ASPX页面:
<script src="<%= SomeCommonFunc.GetResolvedUrl("~/Page1.js") %>" type="text/javascript"></script>
<script src="<%= SomeCommonFunc.GetResolvedUrl("~/Page2.js") %>" type="text/javascript"></script>
Page1.js
function page1Func(){
//Some code
}
Page2.js
function page2Func(){
//Some code
page1Func(); // giving undefined error message
}
所以我这样做了:
function page2Func(){
var someFunc = Page1Func; //it worked
someFunc();
}
它工作。我不知道为什么这条消息即将发生。我也试图改变顺序,在ASPX页面中包含Js文件。 如果有人可以帮助我解释这种行为,那就太好了。
P.S:我已经在网上查了一下,但没有得到正确答案。感谢。
答案 0 :(得分:2)
只要在第一次使用函数之前加载了包含函数定义的文件,就可以调用该函数,就像它在同一个JS文件中一样。
即
File1.js
function alertNumber(number) {
alert(number);
}
File2.js
function alertOne() {
alertNumber("one");
}
HTML
<head>
....
<script src="File1.js" type="text/javascript"></script>
<script src="File2.js" type="text/javascript"></script>
....
</head>
<body>
....
<script type="text/javascript">
alertOne();
</script>
....
</body>
如果你的代码是这样的,那么就没有机会给出未定义的
以下是Plunker实施