簡體   English   中英

為什么我不能從$ {document).ready調用外部函數

[英]why I cannot call outside function from $(document).ready

使用下面的代碼,單擊按鈕不會調用handleData()函數,如果我使用匿名函數的方式(在/ * * /內),它將起作用。

有人可以解釋是什么問題嗎? 以及如何解決? 我想從$(document).ready(...)調用全局函數。

<html>
<head>
<script src="js/jquery/jquery-1.7.2.min.js"></script>

<script>
    function handleData(data, status) {
        $("#p1").text(data);
    };

    $(document).ready(function() {

        $("button").click(function() {
            $.get("testAsync?name=value", handleData(data, status));
        });

        /*
        $("button").click(function() {
            $.get("testAsync?name=value", function(data, status) {
                $("#p1").text(data);
            });
        });
         */
    });
</script>
</head>
<body>
    <button>Send an HTTP GET</button>
    <p id="p1"></p>
</body>
</html>

該函數將立即被調用,因為它后面有(arguments)

由於參數是按順序排列的,因此只需單獨傳遞handleData

從更改函數調用

$.get("testAsync?name=value", handleData(data, status));

$.get("testAsync?name=value", handleData);

在第一種情況下,您將立即執行該函數。只需傳入函數指針,它將按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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