Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquerydone方法用法_Jquery - Fatal编程技术网

jquerydone方法用法

jquerydone方法用法,jquery,Jquery,我有一个小脚本来演示我的问题,下面是test.html页面的javascript代码 <script> function test(e) { if(e < 2) { return; } else { return $.ajax({ type: "POST", url: "test.php", da

我有一个小脚本来演示我的问题,下面是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>

功能测试(e){
if(e<2){
返回;
}否则{
返回$.ajax({
类型:“POST”,
url:“test.php”,
数据:{
e:e
},
成功:功能(数据){
警报(数据);
}
});
}
}
$(文档).ready(函数(){
$(文档)。在(“单击”上,“#bth”,函数(){
测试(1).完成(功能(){
警报(“完成”);
});
});
});


在test.php中,我将

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

我在这一行遇到javascript错误:
test(1).done(function(){

如果参数不止一个(例如
test(2)
),则可以正常工作


如何解决此问题?

如果
e<2
,则函数不会返回任何内容。
您不能在
未定义的
上调用
.done()

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

return $.Deferred().resolve(someResult)

如果
e<2
,则函数不会返回任何内容。
您不能在
未定义的
上调用
.done()

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

return $.Deferred().resolve(someResult)