簡體   English   中英

如何從html調用jquery代碼中的外部函數?

[英]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

然后您必須等待文檔完全加載。

問題是您的代碼以這種方式執行:

  • 執行 external.js
  • 您的函數未定義,因為文檔尚未完成加載
  • 你調用未定義的函數
  • 文件准備好了

恕我直言,我認為在 $(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM