2012-12-19 13 views
5

Sto effettuando una chiamata ajax che restituisce XML. Questo XML deve essere gestito in modo diverso in base alla sezione della pagina all'interno del sito in cui si trova l'utente. Quindi, vorrei implementare 1 funzione Ajax che effettua le chiamate e ha una funzione di successo variabile ... Sono sicuro che sia semplice ma ho cercato per un po 'e non riesco a capirlo.Come utilizzare una chiamata AJAX generica con più funzioni di successo

function makeAjaxCall(variableSuccessFunction) { 
    $.ajax.... (ajax stuff goes here)... 
    success: variableSuccessFunction(xml) 
} 
function ViewOne(xml) { 
    //take the XML and update the dom as appropriate 
} 
function ViewTwo(xml) { 
    //take the XML and update the dom as appropriate 
} 

$(document).ready(function() { 
    //be able to call either one of these functions 
    makeAjaxCall(ViewOne); 
    makeAjaxCall(ViewTwo); 

} 

risposta

4

Hai praticamente capito! Solo un Tweak:

function makeAjaxCall(variableSuccessFunction) { 
    $.ajax.... (ajax stuff goes here)... 
    success: variableSuccessFunction // no (xml) 
} 

si sta passando intorno riferimenti alle funzioni. success viene passato un riferimento a variableSuccessFunction (qualunque esso sia) e lo chiamerà esattamente come se avesse fornito una funzione anonima ad esso. Non è necessario richiamarlo all'interno di makeAjaxCall.

+0

fantastico grazie! Ho provato tutti i tipi di combinazioni diverse e questo funziona! – Chad

Problemi correlati