[英]How to call external function inside jquery code from html?
我需要加載函數以從 HTML 文件中包含的外部 JS 獲取數據,我正在這樣做:
<body onLoad="getTicket();">
......
</body>
或這個:
<html>
<body>
<head>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
getTicket();
});
<script>
</head>
<body>
</html>
或這個:
<html>
<body>
<head>
<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>
<script>
getTicket();
<script>
</head>
<body>
</html>
我在functions.JS中有這個:
functioOne() {
}
functionTwo() {
}
$(document).ready(function() {
...
.....
function getTicket() {
//to do
}
});
但不起作用,並在控制台中顯示:
Uncaught ReferenceError: getTicket is not defined
問候。
您的getTicket
函數僅在 jQuery 閉包(匿名函數)的上下文(范圍)中定義。 而是在全局范圍內定義它(在文件中的其他地方,而不是作為“函數參數”)。
如果您需要該范圍內的變量,請將它們封裝在命名空間(一個對象)中,或將其聲明為window.getTicket = function() { /* ... */}
。
嘗試將function 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>
這完全沒問題。
你可以這樣做:
$(document).ready(function() {
...
.....
window.getTicket = function() {
//to do
}
});
一旦文件准備好,您就可以調用 getTicket
將<script type="text/javascript src="external.js"></script>
到head
。
然后您必須等待文檔完全加載。
問題是您的代碼以這種方式執行:
恕我直言,我認為在 $(document).ready 中定義一個函數不是一個好主意。 通常定義該函數會更簡單,然后在 $(document).ready 中調用它。
您必須在調用該函數之前包含 js 文件。 如果你這樣做:
<html>
<body>
<head>
<!-- include script files here.(jquery and custom script files) -->
<script>
$(document).ready(function() {
getTicket();
});
</script>
</head>
<body>
</html>
在調用該函數之前,您必須包含您的腳本文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.