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