首先,这是我的示例代码:
$.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
玩弄线条和错误报告向我显示,.done
肯定会抛出错误,而只是将.done
直接移到$.post
之后1}}关闭paren isn有效。
我看到了另一个similar question,但它是为了$ .ajax,并且我试图实施他们建议的链接,如上所述,没有效果。我错过了什么?
编辑:jQuery版本为1.4.4,。。post成功返回数据,而.always也失败。
答案 0 :(得分:1)
改为使用.complete
:
$.post("test.php", { testdata : "signal" }, function () {
alert("Nested function"); })
.complete(function () { alert("Done function"); });
答案 1 :(得分:0)
因此,经过调查,并且由于Jonathan Lonowski,algorhythm和War10ck的评论,我发现了解决方案。
我运行的jQuery版本1.4.4不支持.done,.fail,.always或.complete *方法。要在成功后触发事件,我需要遵循以下内联格式:
$.post( url [, data ] [, success ] [, dataType ] )
...在网址后插入通常会进入.done
的函数。这就是我在原始示例中使用嵌套函数所做的事情,只是要求我删除.done函数。
谢谢大家。
* .complete在最新的jQuery版本中也已弃用。不要使用它。