2010-04-17 13 views
7

Je voudrais passer à une fonction jQuery une fonction régulière, au lieu de la fonction anonyme habituelle, mais je ne suis pas sûr comment une telle chose pourrait être faite.Passer une fonction en paramètre dans jQuery?

Au lieu de cela:

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

Je voudrais faire:

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

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

Merci.

+9

Ummm ... exécutez cela. – harpo

+2

Oui. Cela devrait fonctionner exactement comme vous le voulez. Essayez-le;) –

+0

LOL, mon mauvais, j'ai essayé de courir '' foo'', je n'ai pas pris la peine de l'exécuter comme juste 'foo' ... Et puis j'ai oublié le" "dans la question :) Je besoin de dormir un peu !!! – thedp

Répondre

12

Ouais, fonctionne déjà. Mais vous voulez qu'il ressemble probablement à ceci:

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

Oui, c'est exactement ce que vous faites.

2

Doit fonctionner très bien.

Je crois que jQuery est réellement destiné à utiliser la fonction régulière, appelée par son nom. L'utilisation de la fonction anonyme est simplement un remplacement pour une fonction nommée qui serait autrement transmise.