[英]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.