2010-04-27 6 views
1

J'ai une grande fonction définie et exécutée sur un clic d'élément. Existe-t-il un moyen d'exécuter à nouveau cette "grosse" fonction plus tard, appelez-la en quelque sorte, sans l'écrire à nouveau?jQuery appelant une fonction prédéfinie

$('#element').click(function(big){ 
    some big function 
    ... 
    ... 
}); 


$('#another_element').click(function(){ 
    this should execute the previous "big" function 
}); 

Thanx.

Répondre

6

Si vous définissez votre fonction externe à l'appel, vous pouvez l'utiliser autant de fois que vous le souhaitez.

var bigfunction = function(big) { ... }; 

$('#element').click(bigfunction); 
$('#another_element').click(bigfunction); 

Vous pouvez également déclarer de la manière habituelle:

function bigfunction(big) { ... }; 
+0

Thanx, il semble fonctionner, mais maintenant j'ai un nouveau problème, j'ai besoin d'ajouter un if (en cliquant sur = false) return; , J'ai essayé de l'ajouter à la fonction var mais cela ne fonctionne pas, puis-je l'ajouter en quelque sorte au clic? Merci encore – Mircea

+0

Pour autant que je sache, cela devrait fonctionner. Cela dépend probablement de ce que la variable cliquable fait référence car elle pourrait être en dehors de la portée de la fonction lors de son exécution. – tadman

3

Vous devriez faire de la "grande fonction" une fonction séparée ...

function the_big_function(){ 
    // do stuff 
} 

$('#element').click(function(big){ 
    the_big_function(); 
}); 


$('#another_element').click(function(){ 
    the_big_function(); 
}); 
Questions connexes