0

私の問題を示す小さなスクリプトがあります。これがtest.htmlページのjavascriptコードです。

<script>
    function test(e) {
        if(e < 2) {
            return;
        } else {
            return $.ajax({
                type: "POST",
                url: "test.php",
                data: {
                    e: e
                },
                success: function (data) {
                    alert(data);
                }
            });
        }
    }

    $(document).ready(function () {    
        $(document).on("click", "#bth", function () {    
            test(1).done(function () {
                alert('done');
            });
        });

    });
</script>

<body>
    <input type="button" id="bth" value="OK" />
</body>

test.phpに入れました

<?php echo $_POST['e']; ?>

この行でjavascriptエラーが発生しました:test(1).done(function(){

引数が複数の場合(たとえばtest(2))、正常に機能します。

どうすればこの問題を解決できますか?

4

1 に答える 1

6

の場合e < 2、関数は何も返しません。電話を
かけることはできません。.done()undefined

代わりに、事前に解決された遅延オブジェクトを返すことができます。

return $.Deferred().resolve(someResult)
于 2012-11-21T19:38:48.167 に答える