2010-04-17 36 views
7

Vorrei passare ad una funzione jQuery una funzione regolare, invece della solita funzione anonima, ma non sono sicuro di come una cosa del genere possa essere fatta.Passa una funzione come parametro in jQuery?

Invece di questo:

function setVersion(feature) { 
     $.post("some.php", { abc:"abc" }, 
     function(data){ 
     // do something here 
     }, "json"); 
} 

vorrei fare questo:

function foo(data){ 
    // do something here 
} 

function setVersion(feature) { 
     $.post("some.php", { abc:"abc" }, foo, "json"); 
} 

Grazie.

+9

Ummm ... eseguirlo. – harpo

+2

Sì. Dovrebbe funzionare esattamente come vuoi tu. Provalo;) –

+0

LOL, mio ​​male, ho provato a lanciare "" foo "', non mi sono preoccupato di eseguirlo come solo 'foo' ... E poi ho dimenticato il "" nella domanda :) I bisogno di dormire un po !!! – thedp

risposta

12

Sì, funziona già. Ma vuoi che probabilmente assomigli a questo:

function setVersion(feature, myFunction) { 
     $.post("some.php", { abc:"abc" }, myFunction, "json"); 
} 
setVersion(blah, foo); 
1

Sì, è esattamente come lo si fa.

2

Dovrebbe funzionare bene.

Credo che jQuery sia in realtà utilizzato per utilizzare la funzione regolare, chiamata per nome. L'uso della funzione anonima è semplicemente una sostituzione di una funzione con nome che altrimenti verrebbe passata.

Problemi correlati