Javascript 将jQuery.ajax定义为一种方法

Javascript 将jQuery.ajax定义为一种方法,javascript,jquery,ajax,methods,deferred,Javascript,Jquery,Ajax,Methods,Deferred,如何将jQuery ajax方法定义为对象的属性 我有ajax请求 $.ajax({ type: "POST", url: "../PHP/RoadtripsTable.php", data: ({fnChoice: "listRoadtrips"}) }) 我想定义一个对象的属性x,如下所示: var o = { x: $.ajax({ type: "POST", url: "../PHP/RoadtripsTable.php"

如何将jQuery ajax方法定义为对象的属性

我有ajax请求

$.ajax({
    type: "POST",
    url: "../PHP/RoadtripsTable.php",
    data: ({fnChoice: "listRoadtrips"})
})
我想定义一个对象的属性x,如下所示:

var o = {
    x: $.ajax({
        type: "POST",
        url: "../PHP/RoadtripsTable.php",
        data: ({fnChoice: "listRoadtrips"})
    })
}

但这似乎不起作用。我需要将o.x设置为延迟,因为我在jQuery库的$.()中使用它。

这应该适合您:

var o = {
  x: function() {
    $.ajax({
      type: "POST",
      url: "../PHP/RoadtripsTable.php",
      data: ({fnChoice: "listRoadtrips"})
    });
  }
}
这一备选声明也应适用于:

var o = {
  x() {
    $.ajax({
      type: "POST",
      url: "../PHP/RoadtripsTable.php",
      data: ({fnChoice: "listRoadtrips"})
    });
  }
}

不,这不行。when子句——我将方法
x()
to交给它——在我这样编写它时不起作用。也许这是因为
function(){..}
包装器不再使其成为延迟的。在使用此方法时,代码的其余部分是什么样子的?不要忘记从函数返回jqXHR-
x:function(){return$.ajax(…);}