小编典典

jQuery ajax成功回调函数定义

javascript

我想使用jQuery ajax从服务器检索数据。

我想将成功回调函数定义放在如下所示的代码.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
}

阅读 1088

收藏
2020-04-25

共1个答案

小编典典

只需使用:

function getData() {
    $.ajax({
        url : 'example.com',
        type: 'GET',
        success : handleData
    })
}

success属性仅需要引用一个函数,并将数据作为参数传递给该函数。

handleData由于handleData声明的方式,您可以像这样访问您的函数。JavaScript将在运行之前解析代码以进行函数声明,因此您可以在实际声明之前的代码中使用该函数。这称为hoisting.。

但是,这对于声明为这样的函数不起作用:

var myfunction = function(){}

这些仅在口译员通过时才可用。

2020-04-25