2017-03-03 6 views
2

Wie kann ich die jQuery AJAX-Methode als eine Eigenschaft meines Objekts definieren?Definieren Sie jQuery.ajax als Methode

ich habe die Ajax-Request

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

und ich möchte o wie diese eine Eigenschaft x eines Objekts definieren:

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

aber das scheint nicht zu funktionieren. Ich brauche o.x, um ein Deferred zu sein, da ich es innerhalb von $.() Von der jQuery-Bibliothek verwende.

Antwort

0

Dies sollte für Sie arbeiten:

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

Diese alternative Erklärung sollte auch funktionieren:

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

nicht das funktioniert nicht. Die when-Klausel - wo ich die Methode 'x()' übergebe - funktioniert nicht, wenn ich sie so schreibe. Vielleicht liegt es daran, dass der 'function() {..}' Wrapper es nicht mehr verzögert. – Nighel

+0

Wie sieht der Rest Ihres Codes aus, wo Sie diese Methode verwenden? – jeffdill2

+0

Vergessen Sie nicht, den jqXHR aus der Funktion zurückzugeben - 'x: function() {return $ .ajax (...); } ' –