Maison  >  Article  >  interface Web  >  Comment encapsuler des plug-ins dans jquery

Comment encapsuler des plug-ins dans jquery

WBOY
WBOYoriginal
2023-05-28 11:37:091180parcourir

Dans le développement Web, jquery est une bibliothèque Javascript très populaire. jquery dispose d'un riche écosystème de plug-ins, car il fournit une méthode d'encapsulation de plug-ins pratique, nous permettant d'encapsuler le code réutilisé dans des plug-ins pour une réutilisation facile dans les projets.

Cet article présentera la méthode d'encapsulation du plug-in jquery pour vous aider à écrire rapidement du code efficace.

1. La structure de base du plug-in

Un plug-in jquery contient les parties suivantes :

1. Nom du plug-in
2. Paramètres par défaut
3. Fonction principale du plug-in
4. Méthode d'extension
5. Objet d'instance

Ensuite, nous allons présenter ces sections une par une.

1. Nom du plugin

Le nom du plugin est important, il doit être descriptif, clair et facile à comprendre. Nous devons éviter d’utiliser des noms trop concis ou trop généraux. Par exemple : "myPlugin" ou "pluginLibrary1" ne fournissent pas beaucoup d'informations. Un bon nom de plug-in peut aider les autres à mieux comprendre notre plug-in.

2.Paramètres par défaut

Notre plugin doit avoir des paramètres par défaut pour permettre aux utilisateurs d'utiliser le plugin lorsqu'aucun paramètre n'est spécifié. Les paramètres par défaut doivent être soigneusement définis pour éviter toute conjecture inutile.

3. Fonction principale du plug-in

C'est là que se trouve la fonction principale du plug-in. À l’intérieur de la fonction, nous compléterons tout le code requis. Cette fonction doit avoir un paramètre, qui est une propriété d'objet utilisée pour transmettre les paramètres définis par l'utilisateur et les informations de configuration. Voici un exemple de code :

(function($){

$.fn.myPlugin = function(options){
   var settings = $.extend({
        //在这里定义默认参数
    }, options);        
   //插件主体函数
}    

}(jQuery));

La première ligne de code est une fonction anonyme auto-exécutable dont le paramètre est jQuery. Le paramètre $ est cité pour garantir que l'alias $ est disponible dans le plugin. La fonction du plug-in est montée sur jQuery.fn, ce qui en fait un plug-in jQuery.

$.fn.myPlugin est le nom du plug-in et options est l'objet de configuration que nous transmettons au plug-in.

4. Méthode d'extension

La méthode d'extension signifie que nous pouvons étendre le plug-in à plus de fonctions. Nous pouvons ajouter plus de méthodes au plugin. Ils doivent être des objets à l'intérieur de la nouvelle fonction car ils ont des fonctions différentes.

Parfois, nous utilisons également des méthodes internes, il n'est donc pas nécessaire de les exposer en tant que méthodes distinctes. Ces méthodes ne sont pas utilisées par d'autres plugins.

Par exemple :

(function($){

$.fn.myPlugin = function(options){
    var settings = $.extend({
        //默认配置项
    }, options);
    var methods = {
      init: function(){},
      verify: function(){},
      processData: function(){}
    };
    //插件主体函数
    function mainFunc(){
        methods.init();
        methods.verify();
        methods.processData();
    }
    return this.each(function(){
        mainFunc();
    });
};

}(jQuery));

Dans l'exemple ci-dessus, nous utilisons l'objet "methods" à l'intérieur du plugin pour définir "init", "verify" et "processData " " méthode.

5. Objet instance

Enfin, nous devons créer un objet instance pour le plugin. Ceci est réalisé en utilisant jquery $.data(). La méthode $.data() nous permet d'attacher des données à un élément afin que notre plugin puisse y être utilisé. Voici un exemple :

(function($){

$.fn.myPlugin = function(options){
   var settings = $.extend({
        //默认配置项
    }, options);
    var methods = {
        //插件方法 
    };        
    //插件主体函数
    function main(){
        //核心功能代码
    }       
    return this.each(function(){
        //获取jQuery对象
        var $this = $(this);
        
        //检测我们的插件是否已经应用
        var data = $this.data('myPlugin');
        
        //如果插件未被初始化,则初始化插件
        if(!data){
            $this.data('myPlugin', {
                target: $this,
                methods: methods
            });
            main();
        }
    });
};

}(jQuery));

Dans cet exemple, nous obtenons d'abord l'élément actuel à l'aide d'un objet jQuery. Nous vérifions ensuite si l'élément contient déjà les informations de notre plugin, et sinon, ajoutons ces informations aux données de l'élément - le nom des données est myPlugin.

Ce qui précède est la structure de base. Ensuite, nous vous montrerons comment définir certaines fonctionnalités communes pour étendre votre plugin.

2. Développez les fonctions du plug-in

Lorsque vous utilisez jQuery pour écrire des plug-ins, nous pouvons ajouter diverses fonctions pour étendre les fonctions du plug-in. Voici quelques exemples pour vous aider à comprendre :

1. Ajouter des styles

Vous pouvez ajouter des styles à votre plugin en utilisant des feuilles de style CSS. Vous pouvez placer ces styles dans les options de configuration des couleurs de votre plugin. Cela ressemble à ceci :

$.fn.myPlugin = function(options){

var settings = $.extend({
    color: '#ffffff'
}, options);

return this.each(function(){
    $(this).css('color', settings.color);
});

}

Dans l'exemple ci-dessus, nous ajoutons une couleur spécifiée par l'utilisateur à l'attribut de style de l'élément.

2. Gestion des événements

Vous pouvez également ajouter des fonctions de gestion des événements pour répondre au comportement de votre plug-in. Par exemple, vous pouvez ajouter un événement de clic de souris comme celui-ci :

$.fn.myPlugin = function(options){

var settings = $.extend({
   onClick: function(){}
}, options);

return this.each(function(){
    $(this).click(function(event){
        event.preventDefault();
        settings.onClick.call(this, event);
    });
});

};

Dans l'exemple ci-dessus, nous avons d'abord créé une fonction onClick par défaut, celle-ci est ensuite fusionnée avec la configuration de l'utilisateur. Ensuite, nous lions l'événement click à chaque élément. Lorsque l'événement est déclenché, nous appelons la fonction onClick configurée et la déclenchons sur l'élément actuel.

  1. Implémentation d'appels chaînés

jQuery est souvent appelé la bibliothèque Javascript pour les appels chaînés car elle vous permet d'enchaîner toutes les opérations DOM ensemble. Cette fonctionnalité peut également être appliquée à vos plugins pour fournir une API chaînée pour utiliser vos plugins.

Par exemple, nous pouvons ajouter une méthode setOption à notre plugin puis la rendre chaînable. Comme indiqué ci-dessous :

$.fn.myPlugin = function(options){

var settings = $.extend({
   onClick: function(){},
   option: null
}, options);

var methods = {
    setOption: function(option){
        return this.each(function(){
            $(this).data('option', option);
        });
    }
}

return this.each(function(){
    //实现链式调用
    var $this = $(this).data('myPlugin',{'methods': methods});
    $this.data('option', settings.option);
    
    $this.click(function(event){
        event.preventDefault();
        settings.onClick.call(this, event, $this.data('option'));
    });
});

};

Dans l'exemple ci-dessus, nous avons ajouté la fonction setOption dans la méthode, puis implémenté l'appel en chaîne via celle-ci. Dans le code ci-dessous, nous montrons comment utiliser les appels chaînés pour définir les options :

$("#my-element").myPlugin().myPlugin('setOption', {

option: 'myOption'

});

In Dans le Dans l'exemple ci-dessus, la méthode myPlugin() est d'abord appelée, ce qui créera un objet myPlugin. Appelez ensuite la méthode setOption via cet objet, en lui passant l'objet options. De cette façon, nous implémentons des appels en chaîne.

  1. 对外公开API

我们可以使用 jQuery.fn.extend() 方法扩展对外公开的API。这样就可以在很多不同的方法中重用代码。下面是一个示例:

$.fn.myPlugin = function(){

var methods = {
    method1: function(){
        console.log('method1');
        return this;
    },
    method2: function(){
        console.log('method2');
        return this;
    }
};
this.method1 = methods.method1;
this.method2 = methods.method2;
return this;

};

在上面示例中,我们使用this关键字将每个方法都添加到了插件函数上。这意味着每次我们调用myPlugin()方法时,我们都可以直接调用这些方法。

我们可以通过使用如下代码来调用这个函数:

$("#my-element").myPlugin().method1().method2();

以上是本文的内容,希望通过这些例子能够帮助您更好地理解jQuery插件封装,从而开发更高效的插件。

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!

Déclaration:
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