71 votes

Pourquoi revenir.each(function()) dans les plugins jQuery?

Certains des tutoriels et des exemples que j'ai vu pour le développement de plugins jQuery, ont tendance à revenir

this.each(function () {
    //Plugin code here
});

à la fin de la fonction qui instancie le plugin, mais j'ai pas encore vu un raisonnement derrière elle, il semble juste être une norme que tout le monde suit. Quelqu'un peut-il m'éclairer quant au raisonnement derrière cette pratique?

Edit: Pour clarifier ma question n'était pas sur le pourquoi de retour, mais plutôt pourquoi le plugin doit retourner cette.chaque.

77voto

Felix Kling Points 247451

Lorsque vous filtrez les éléments avec un sélecteur ($('.myclass')), elle peut correspondre à plus d'un seul élément.
Avec each, vous itérer sur tous les éléments qui correspondent et que votre code est appliqué à l'ensemble d'entre eux.

23voto

gnarf Points 49213

jQuery permet de "chaînage de méthodes", ce qui signifie que la plupart des fonctions jQuery doit renvoyer this. .each() retours this, et si vous souhaitez $('selector').yourPlugin().css(...) , return this.

7voto

Max Toro Points 13050

Lorsque vous écrivez un plugin que vous l'extension de l'objet jQuery, et parce que l'objet jQuery est une séquence de vous renvoyer this.each(function () { }); , de sorte que votre plugin est exécutée pour chaque élément de la séquence.

4voto

adardesign Points 6182

En bref, il vous permet de profiter de l'enchaînement, car il renvoie à tout ce qui a été fait jusqu'à maintenant, de sorte que le lendemain .anyMethod() peut agir sur le changement/modification d'éléments.



En outre, jetez un oeil à ces liens, ils vous donneront beaucoup d'informations sur le développement plugin jQuery.

http://www.webresourcesdepot.com/jquery-plugin-development-10-tutorials-to-get-started/
http://www.learningjquery.com/2007/10/a-plugin-development-pattern
http://snook.ca/archives/javascript/jquery_plugin

Et ici vous avez une belle basé sur le web application qui vous permet de lancer vos plugins jQuery. http://starter.pixelgraphics.us/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X