Maison > interface Web > js tutoriel > Partager les notes d'étude du plug-in jQuery_jquery

Partager les notes d'étude du plug-in jQuery_jquery

WBOY
Libérer: 2016-05-16 15:20:08
original
1160 Les gens l'ont consulté

Le plugin est également appelé jQuery Extension, qui est un programme écrit selon une certaine interface d'application standard. Il existe actuellement plus de milliers de plug-ins jQuery, écrits, vérifiés et améliorés par des développeurs du monde entier. Pour les développeurs jQuery, l’utilisation directe de ces plug-ins stabilisera rapidement l’architecture du système et réduira les coûts du projet.

1. Présentation du plugin

Les plug-ins sont basés sur le code principal de jQuery pour écrire des applications combinant certaines spécifications. En d'autres termes, le plug-in est également du code jQuery, qui peut être inséré via l'introduction de fichiers js.

Il existe de nombreux types de plug-ins, qui peuvent être grossièrement divisés en : classe d'interface utilisateur, classe de formulaire et de vérification, classe d'entrée, classe d'effets spéciaux, classe Ajax, classe coulissante, classe graphique et image, classe de navigation, outil complet. cours, cours d'animation, etc.

L'introduction des plug-ins nécessite certaines étapes, qui sont essentiellement les suivantes :

  • 1. Le fichier jquery.js doit être importé en premier, et avant tous les plug-ins
  • 2. Introduire les plug-ins
  • 3. Introduisez des périphériques plug-ins, tels que des skins, des packs de langue chinoise, etc.

Par exemple, le plug-in de validation de formulaire le plus couramment utilisé : validate, en plus du fichier de plug-in le plus basique jquery.validate.min.js, il existe également messages_zh.js et d'autres packages linguistiques de divers pays pour à vous d'utiliser.

Comment utiliser ce plug-in ne sera pas décrit ici. Vous pouvez regarder la vidéo sur MOOC.com sur le plug-in jQuery - Validation Plugin, qui décrit en détail les différents éléments de configuration et extensions de ce plug-in. dans.

Par analogie, pour un excellent plug-in, une documentation détaillée est indispensable. Lire la documentation en détail et la tester localement vous permettra de vous lancer rapidement dans l'utilisation des différents plug-ins.

Il existe également divers plug-ins écrits par d'autres que vous pouvez utiliser : tels que des plug-ins de gestion des cookies – cookies, etc.

Les plug-ins peuvent être trouvés dans le module de plug-in sur le site officiel de jQuery

2. Plug-in personnalisé

Auparavant, nous utilisions de bons plug-ins fournis par d'autres, qui sont très pratiques à utiliser. Si vous ne trouvez pas de plug-in qui vous satisfait sur le marché et que vous souhaitez créer vous-même un plug-in pour que d'autres puissent l'utiliser. Ensuite, vous devez écrire vous-même un plug-in jQuery.

1. Types de plug-ins

Selon la classification fonctionnelle, les formulaires plug-in peuvent être divisés en trois catégories suivantes :

  • Plug-in qui encapsule les méthodes d'objet ; (c'est-à-dire un objet jQuery basé sur un certain élément DOM, localisé et le plus utilisé)
  • Plug-in qui encapsule des fonctions globales (encapsulation globale)
  • Plugin de sélection. (Similaire à .find(), par exemple : color(red) pour sélectionner tous les éléments rouges)

2. Points de base des plug-ins

Principalement utilisé pour résoudre divers conflits, erreurs et autres problèmes causés par les plug-ins, notamment les suivants :

  • Il est recommandé d'utiliser jQuery.[nom du plugin].js pour le nom du plug-in afin d'éviter les conflits avec d'autres fichiers js ou d'autres bibliothèques (vous pouvez utiliser alert( $.[plug-in name]) pour vérifier si la méthode globale existe);
  • L'objet local est attaché à l'objet jQuery.fn et la fonction globale est attachée à l'objet jQuery lui-même (vous pouvez utiliser alert( $(selector).[plugin name]) pour vérifier si la méthode locale existe);
  • À l'intérieur du plug-in, cela pointe vers l'objet local actuel (objet jQuery obtenu via le sélecteur
  • ) ;
  • Vous pouvez utiliser this.each pour parcourir tous les éléments
  • Toutes les méthodes ou plug-ins doivent se terminer par un point-virgule pour éviter les problèmes (pour plus de sécurité, vous pouvez ajouter un point-virgule en tête du plug-in ) ;
  • Le plug-in doit renvoyer un objet jQuery pour garantir des opérations chaînables
  • Évitez d'utiliser $ à l'intérieur du plug-in. Si vous souhaitez l'utiliser, utilisez une fermeture pour transmettre jQuery, afin que le plug-in continue à utiliser $ comme alias pour jQuery.
;(function($){//这里将$符作为匿名函数的形参
/*在此处编写代码,可使用$作为jQuery的缩写别名*/
})(jQuery);//这里将jQuery作为实参传递给匿名函数了
Copier après la connexion

3. Écrivez un plug-in

Supposons que notre exigence de plug-in soit d'implémenter un menu déroulant, d'afficher la liste déroulante correspondante lorsque l'élément est déplacé et de la rétracter lorsque l'élément est déplacé. Et vous pouvez définir la couleur du texte lorsqu'il est développé.

Selon la convention, lorsque nous écrivons des plug-ins, nous pouvons avoir certaines contraintes sur la structure html. Supposons maintenant que notre page ait la structure HTML suivante :

<ul class="list">
 <li>导航列表1
  <ul class="nav">
   <li>导航列表1</li>
   <li>导航列表2</li>
   <li>导航列表3</li>
   <li>导航列表4</li>
   <li>导航列表5</li>
   <li>导航列表6</li>
  </ul>
 </li>
 <li>导航列表2
  <ul class="nav">
   <li>导航列表1</li>
   <li>导航列表2</li>
   <li>导航列表3</li>
   <li>导航列表4</li>
   <li>导航列表5</li>
   <li>导航列表6</li>
  </ul>
 </li>
</ul>
<!-- 默认已经引入jquery -->
Copier après la connexion

在这里,我们就对我们的插件实现效果有了第一个要求,必须在 对于需要hover展现的元素 内部下面建立 ul 列表,且 className 必须为 nav 。(插件内部都是根据该条件来做文章)

下面就可以开始编写我们的插件了。保存为 jQuery.nav.js ,(符合上面所说的要求,默认已经导入)

;(function($){
 $.extend({ //插件定义在全局方法上
  "nav" : function (color){//传参,这里只是抛砖引玉,在您编写的时候,参数选项可以更加丰富,例如传入json对象等等
   $('.nav').css({//对展开的下拉列表设置样式,此处在下面进行详细说明
    "list-style" : "none",
    "margin" : 0,
    "padding" : 0,
    "display" : "none",
    "color":color//由用户控制hover时,展现出来列表的文字颜色
   });
   $('.nav').parent().hover(//这里用到了.nav的父节点(就是hover到的元素)
    //因为我们只能在插件要求的范围内进行设定,若是使用了外部的选择器,就违背了这个原则
    function (){
     $(this).find(".nav").stop().slideDown("normal");//注意我们在这里使用了jquery的动画方法
    },function (){
     $(this).find(".nav").stop().slideUp("normal");//注意stop()的使用,不然会有类似手风琴效果的出现,但那并不是我们需要的
    });
  }
 });
})(jQuery);
Copier après la connexion

注意:这里使用css方法只是为了方便,在真实插件编写过程中,若存在如此大量的css样式编写时,推荐在外部定义css样式,例如可改写为:

插件依赖的css,需和插件一起导入html中

.hover{/*插件必须样式*/
 list-style: none;
 margin:0;
 padding: 0;
 display: none;
}
Copier après la connexion

在插件内部修改。

$('.nav').addClass("hover");//将CSS与jQuery分离开来
$('.nav').css("color",color);//存在用户设置时启用,不存在就不用了(进行判断)
Copier après la connexion

刚刚说的都是插件的js文件,最后要起到效果,别忘了页面的js中加上那么一句话(当前插件定义在全局方法上)

$(function (){
 $.nav("#999");//调用插件实现的全局方法,并且设置其展现背景颜色为#999。
});
Copier après la connexion

就这样,我们的全局插件就编写,而且调用完成了,在你的页面刷新看看,是不是已经有了效果呢?

但是,因为我们的方法定义在全局上,现在只要页面中出现了我们插件所规定的结构,就会存在hover展现效果,但是有时我们往往想要的不是这样,我们希望它在局部,在我指定的元素调用。所以我们需要对其进行一些改造,让其变成局部方法,其实也很简单:

;(function($){
 $.fn.extend({//定义为局部方法
  "nav" : function (color){
   $(this).find('.nav').addClass('hover');//上面已经说过了,此时this指向调用该方法的元素
   $(this).find('.nav').css("color",color);//在当前元素下,增加了一次find筛选,实现在对应的元素中执行。
   $(this).find('.nav').parent().hover(
    function (){
     $(this).find(".nav").stop().slideDown("normal");
    },function (){
     $(this).find(".nav").stop().slideUp("normal");
    });
   return this;//返回当前的对象
  }
 });
})(jQuery);
Copier après la connexion

我们去刷新一下浏览器。你会发现,咦,怎么没效果? 当然因为原来的代码是直接在全局调用的,现在变成局部方法了,显然就不能这样做了,需要做一点改变:

我这里就不贴html代码了,但是希望您在实践时能把上面的html代码在其下复制几份,以达到思考其实现的效果

$(function (){//这里的eq(0)代表只对第一份起到效果,复制后的没有效果。
 //(你可以把上面的find筛选删除之后再试试,您会发现,他又对余下的几份起效果了)
 $(".list").eq(0).nav("red");//调用局部方法
});
Copier après la connexion

现在回过头再把我们写的插件代码对应上面写的 插件编写的要点 ,思考一下,我们还有哪些没有做到?就会发现,基本已经能对应上了。现在我们就完成了一个下拉菜单的插件。

其实编写插件并不难,最主要的是在我们编写插件的时候,一定要时刻注意这样的要点,每一个细节都遵循在大家实践过程中总结出来的最佳实现,才能自定义实现一个良好的插件。

代码首先是写个人看的,再然后才是给机器看的。

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal