繁体   English   中英

jQuery .done没有在$ .post请求上触发

[英]jQuery .done not firing on a $.post request

首先,这是我的示例代码:

$.post( "test.php", { testdata : "signal" },
            function( data ) { alert( "Nested function" )})
 .done( function () { alert( "Done function" )});

我正在尝试让.done为我完成一些任务,这无关紧要。 无论我是否直接在$.post参数中嵌套函数,它都不会触发。 检查Chrome上的控制台显示它抛出了Uncaught TypeError: undefined is not a function错误Uncaught TypeError: undefined is not a function

反复使用行和错误报告向我显示,肯定是.done了错误,仅在$.post的关闭括号之后直接将.done移至并不有效。

我看到了另一个类似的问题 ,但这是$ .ajax的问题​​,而我试图实现上述建议的链接,但没有任何效果。 我想念什么?

编辑:jQuery版本是1.4.4,.post成功返回数据,.always也失败。

使用.complete代替:

$.post("test.php", { testdata : "signal" }, function () { 
        alert("Nested function"); })
    .complete(function () { alert("Done function"); });

小提琴

因此,经过调查,并感谢Jonathan Lonowski,algorhythm和War10ck的评论,我找到了解决方案。

我正在运行的jQuery版本1.4.4不支持.done,.fail,.always或.complete *方法。 要在成功后触发事件,我需要遵循以下内联格式:

$.post( url [, data ] [, success ] [, dataType ] )

...在网址后插入通常会进入.done的函数。 这就是我在原始示例中对嵌套函数所做的事情,只是需要删除.done函数。

谢谢大家

* .complete在较新的jQuery版本中也不建议使用。 永远不要使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM