JQuery完成了方法用法

时间:2012-11-21 19:37:05

标签: jquery

我有一个小脚本来演示我的问题,这里是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)),它可以正常工作。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

如果e < 2,您的功能不会返回任何内容 您无法在.done()上致电undefined

相反,您可以返回预先解析的延迟对象:

return $.Deferred().resolve(someResult)