我已經被告知只有在傳遞參數時才能調用帶有參數的函數,但最近我進入了這個Jquery-Ajax的東西,事情看起來有點不同。在教程中的一個例子是這樣的:爲什麼jqueryAjax回調函數不需要被調用?
$("#div1").load("demo_test.txt", function(responseTxt, statusTxt, xhr) {
if (statusTxt == "success")
alert("External content loaded successfully!");
if (statusTxt == "error")
alert("Error: " + xhr.status + ": " + xhr.statusText);
});
注意到帶有三個參數的函數?是的,那一個。令人困惑的是,它的參數顯然已經無處被傳遞/映射,然而它已經被用於IF和alert中,並且它可以工作。怎麼樣 ?我的意思是如何?
它們正從'load'函數傳遞。 'load'以類似於'callback(responseTxt,statusTxt,xhr)''的地方結束,其中'callback'是你上面定義的函數。這裏有一個簡單的回調示例:https://jsfiddle.net/5gu37wo7/ – tymeJV
如果您檢查jQuery源代碼,您可以看到函數從何處調用:https://j11y.io/jquery/#v=1.11.2&fn = jQuery.fn.load。它是那些懶得點擊的AJAX請求的'complete'處理程序:) –