2012-12-19 16 views
5

Tworzę wywołanie ajaxowe, które zwraca XML. Ten XML musi być obsługiwany inaczej, w zależności od sekcji strony w witrynie, w której znajduje się użytkownik. Dlatego chciałbym wprowadzić 1 funkcję ajax, która wykonuje połączenia i ma funkcję zmiennej sukcesu ... Jestem pewien, że jest to proste, ale szukałem przez chwilę i nie mogę tego rozgryźć.Jak wykorzystać ogólne wywołanie AJAX z wieloma funkcjami sukcesu

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); 

} 

Odpowiedz

4

Po prostu to dostałeś! Wystarczy jedno ulepszenie:

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

Przekazujesz referencje funkcji. success jest przekazywane jako odniesienie do variableSuccessFunction (cokolwiek to może być) i będzie je wywoływać tak, jak gdybyś podał mu anonimową funkcję. Nie trzeba go wywoływać wewnątrz makeAjaxCall.

+0

fajne dzięki! Próbowałem różnych kombinacji i to działa! – Chad

Powiązane problemy