0

以下のコードでは、ボタンをクリックしても 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>
4

2 に答える 2

5

あなたがそれを持っているので、関数はすぐに呼び出されて(arguments)います。

引数が整っているので、そのまま渡しhandleDataます。

于 2013-01-04T17:48:12.747 に答える
4

関数呼び出しを

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

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

最初のケースでは、すぐに関数を実行しています.関数ポインタを渡すだけで、期待どおりに動作します..

于 2013-01-04T17:48:18.610 に答える