Javascript 如何从html调用jquery代码内部的外部函数?
我需要加载函数从HTML文件中包含的外部JS获取数据,我正在这样做:Javascript 如何从html调用jquery代码内部的外部函数?,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我需要加载函数从HTML文件中包含的外部JS获取数据,我正在这样做: <body onLoad="getTicket();"> ...... </body> 但不起作用,在控制台中显示: Uncaught ReferenceError: getTicket is not defined 注意。添加您的getTicket函数仅在jQuery闭包(匿名函数)的上下文(范围)中定义。而是在全局范围中定义它(在文件的其他地方,而不是作为“函数参数”) 如果需要来自该范围的变
<body onLoad="getTicket();">
......
</body>
但不起作用,在控制台中显示:
Uncaught ReferenceError: getTicket is not defined
注意。添加
您的getTicket
函数仅在jQuery闭包(匿名函数)的上下文(范围)中定义。而是在全局范围中定义它(在文件的其他地方,而不是作为“函数参数”)
如果需要来自该范围的变量,请将它们封装在命名空间(对象)中,或将其声明为window.getTicket=function(){/*…*/}
,您可以执行以下操作:
$(document).ready(function() {
...
.....
window.getTicket = function() {
//to do
}
});
文档准备好后,您将能够调用getTicket您必须在调用函数之前包含js文件。如果您这样做:
<html>
<body>
<head>
<!-- include script files here.(jquery and custom script files) -->
<script>
$(document).ready(function() {
getTicket();
});
</script>
</head>
<body>
</html>
$(文档).ready(函数(){
getTicket();
});
在调用函数之前,必须包含脚本文件。尝试将函数getTicket(){}
放在外部或doc ready
:
functio One() {
}
function Two() {
}
function getTicket() {
//to do
}
$(document).ready(function() {
...
.....
getTicket();
});
你的加入顺序很完美,没有问题
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>
这很好。您如何将外部js文件包含到HTTML文件中?您使用的浏览器是什么?它是否会在控制台中产生错误?如果functions.js文件中存在解析错误,浏览器可能会“跳过”该文件的其余部分,导致您的getTicket()函数“未”定义头标记必须放在体标记之前-尤其是当您想要
时,您的意思是,我将该代码放在外部js或html文件中?谢谢,你的例子有助于理解这个想法。显然,我有它,这是你应该做的第一件事。问题是getTicket()包含jQuery代码,因此我无法输出。我认为不会有任何问题,但您可以尝试此操作。@SoldierCorp ready部分的文档只是确保在运行jQuery之前填充DOM。您可以在它之外定义代码,只要它还没有被调用。(现在你是否应该是另一个问题)当你的答案只是“添加脚本标签”(这与函数的范围是闭包这一问题无关,这意味着他永远看不到它)时,我问了你一个问题。现在你已经编辑过了,所以我要取消负1。
<html>
<body>
<head>
<!-- include script files here.(jquery and custom script files) -->
<script>
$(document).ready(function() {
getTicket();
});
</script>
</head>
<body>
</html>
functio One() {
}
function Two() {
}
function getTicket() {
//to do
}
$(document).ready(function() {
...
.....
getTicket();
});
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>