Guide de développement du plug-in jQuery: Création de composants réutilisables
Points de base:
fn
de jQuery. this
extend
this
et inclus dans la page HTML après le chargement de la bibliothèque JQuery. .js
Pourquoi créer un plugin jQuery?
en bref: réutilisation. En étendant JQuery, vous pouvez créer des composants qui peuvent être réutilisés sur n'importe quelle page Web. Votre code est encapsulé et il est peu probable que vous utilisiez le même nom de fonction ailleurs.
Comment fonctionne jQuery
Dans la partie centrale, jQuery reçoit un élément DOM ou une chaîne contenant un sélecteur CSS. Il renvoie un objet jQuery, qui est une collection de nœuds DOM de type tableau. Ensuite, une ou plusieurs méthodespeuvent être appelées dans une chaîne à ce groupe de nœuds, par exemple:
// 将所有 <p> 标签的颜色设置为红色 $("p").css("color", "red");</p>
Comment fonctionne le plugin jQuery
jQuery permet d'ajouter des méthodes à ses bibliothèques. Lorsque ces méthodes sont appelées, l'objet jQuery est passé comme un objet de JavaScript. Le nœud DOM peut être utilisé selon les besoins et la méthode doit retourner this
afin que d'autres fonctions puissent être appelées enchaînées. Notre exemple de plugin sera appelé en utilisant le code suivant: this
// 反转所有 <p> 标签中的文本 $("p").reverseText();</p>
et minlength
. Si ces deux paramètres sont définis, la longueur de la chaîne doit être entre ces deux limites afin d'être inversée. maxlength
Instruction du plugin Le plugin
utilise la définition de la fonction de jQuery, par exemple: fn
// 将所有 <p> 标签的颜色设置为红色 $("p").css("color", "red");</p>
L'utilisation de "jQuery" au lieu de "$" garantit qu'il ne fait pas entrer en conflit avec d'autres bibliothèques JavaScript. Tout notre code interne doit également se référer à "jQuery" au lieu de "$". Cependant, nous pouvons utiliser des fonctions anonymes pour enregistrer des entrées et réduire la taille du fichier:
// 反转所有 <p> 标签中的文本 $("p").reverseText();</p>
Cette fonction s'exécute immédiatement et passe JQuery en tant que paramètre nommé "$". Étant donné que "$" est une variable locale, nous pouvons supposer qu'il fait toujours référence à la bibliothèque jQuery, plutôt que la première autre bibliothèque pour obtenir la variable "$" globale.
Paramètres du plugin
Notre plugin nécessite deux paramètres: minlength
et maxlength
. Le moyen le plus simple est de les définir comme des paramètres de fonction, par exemple:
jQuery.fn.reverseText = function(params) { ... };
Mais que se passe-t-il si nous décidons d'ajouter plus de paramètres plus tard? Notre plugin peut avoir des dizaines d'options - le traitement des paramètres peut rapidement devenir compliqué. Comme alternative, nous pouvons passer un seul objet JSON, par exemple:
(function($) { $.fn.reverseText = function(params) { ... }; })(jQuery);
avec n'importe quelle valeur définie par l'utilisateur reverseText
. La fonction de jQuery peut nous aider à résoudre ce problème:
extend
(function($) { $.fn.reverseText = function(minlength, maxlength) { ... }; })(jQuery); // 示例 $("p").reverseText(0, 100);
est 99999. params.minlength
params.maxlength
Maintenant, nous pouvons écrire notre code de plugin principal:
Explication:
(function($) { $.fn.reverseText = function(params) { ... } })(jQuery); // 示例 $("p").reverseText( { minlength: 0, maxlength: 100 } );
this.each
Dans la fonction, "ce" contient un seul nœud. Une collection de nœuds jQuery est attribuée à $t
La variable origText
newText
Si la longueur de origText
, la boucle crée une chaîne de texte inversée dans params.minlength
. Mettez ensuite à jour le nœud DOM en conséquence. params.maxlength
newText
Enfin, nous devons nous rappeler de retourner l'objet jQuery afin que d'autres méthodes puissent être appelées enchaînées:
// 合并默认参数和用户参数 params = $.extend( {minlength: 0, maxlength: 99999}, params);
Notre code de plugin est maintenant terminé:
Enregistrez ce fichier sous
// 遍历所有节点 this.each(function() { // 将单个节点表示为 jQuery 对象 var $t = $(this); // 查找文本 var origText = $t.text(), newText = ''; // 文本长度是否在定义的限制内? if (origText.length >= params.minlength && origText.length <= params.maxlength) { for (var i = origText.length; i--; ) newText += origText.substr(i, 1); $t.text(newText); } });
jquery.reversetext.js
return this;
Vous devriez maintenant avoir une bonne compréhension du développement du plug-in jQuery. Le Forum JavaScript SitePoint est également une excellente ressource pour rechercher de l'aide et des conseils. À venir bientôt: un nouveau tutoriel en trois parties sur la façon de créer des composants de page utiles dans les plugins jQuery. (La partie FAQ du document d'origine est omise ici car le contenu de cette partie ne correspond pas aux exigences pseudo-originales et est trop long.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!