我想使用jQuery ajax从服务器检索数据。
我想将成功回调函数定义放在如下所示的代码.ajax()块之外。因此,是否需要dataFromServer像下面这样声明变量,以便能够使用成功回调中返回的数据?
.ajax()
dataFromServer
我已经看到大多数人在.ajax()块内定义成功回调。如果我想在外部定义成功回调,那么以下代码正确吗?
var dataFromServer; //declare the variable first function getData() { $.ajax({ url : 'example.com', type: 'GET', success : handleData(dataFromServer) }) } function handleData(data) { alert(data); //do some stuff }
只需使用:
function getData() { $.ajax({ url : 'example.com', type: 'GET', success : handleData }) }
该success属性仅需要引用一个函数,并将数据作为参数传递给该函数。
success
handleData由于handleData声明的方式,您可以像这样访问您的函数。JavaScript将在运行之前解析代码以进行函数声明,因此您可以在实际声明之前的代码中使用该函数。这称为hoisting.。
handleData
但是,这对于声明为这样的函数不起作用:
var myfunction = function(){}
这些仅在口译员通过时才可用。