第一次功能是返回Undefined,每隔一次它有效吗?使用Jquery,Javascript,Ajax

时间:2015-10-29 12:24:55

标签: javascript jquery ajax

第一次使用函数返回Undefined,每次运行并返回对象....

基本上,第一次存储var _d时,它是一个未定义的值。

第一次存储其值时,点击是"未定义"并且每隔一段时间它存储适当的值。



// jscript.js

function getDataById(This,table,Url)
{
    var Id = table.row(This.parent().parent()).data().id;
    $.ajax({
        url: Url + "/" + Id,
        type: "GET",
        dataType: 'json',
        success: function (Data) {
            var _d = Data;
            return _d;
        },
        error: function () {
            sweetAlert("Oops...", "Something went wrong!", "error");
        }
    });
    
}

/***********************/

$(document).ready(function () {

    $("#test tbody").on('click', '#aff', function () {
        console.log(  getDataById($(this),table,"test/email") );
    });

)};

/*****************/

// undefined




1 个答案:

答案 0 :(得分:0)

$.ajax()是异步的,success只是一个回调。 函数getDataById必须有一个将在ajax请求之后调用的回调

// jscript.js

function getDataById(This, table, Url, callback) {
  var Id = table.row(This.parent().parent()).data().id;
  $.ajax({
    url: Url + "/" + Id,
    type: "GET",
    dataType: 'json',
    success: function (Data) {
      callback(Data);
    },
    error: function () {
      sweetAlert("Oops...", "Something went wrong!", "error");
    }
  });
}

/***********************/

$(document).ready(function () {
    $("#test tbody").on('click', '#aff', function () {
      getDataById($(this), table, "test/email", function (data) {
        console.log(data);
      });
    });
  )
};
/*****************/