我已经被告知只有在传递参数时才能调用带有参数的函数,但最近我进入了这个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'处理程序:) –