Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/08/2011, 12h36   #1
Membre confirmé
 
Avatar de cahnory
 
Inscription : mai 2007
Messages : 199
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : mai 2007
Messages : 199
Points : 287
Points : 287
Envoyer un message via ICQ à cahnory
Par défaut jQuery plugin boilerplate

Bonjour à tous, je vous présente ici le modèle que j'utilise pour concevoir mes plugins jQuery.
Je me suis inspiré de plusieurs modèles différents mais notamment de http://stefangabos.ro/jquery/jquery-...ate-revisited/ que j'ai tout de même bien modifié, principalement sur la façon d'appeller les méthodes publiques.
Boilerplate
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
(function($) {
 
	//	Static private vars
	var pluginName = 'boilerplate',
		pStatic = {
			//	Static public vars
			foo: 'bar'
		};
 
	$[pluginName] = function(element, options) {
 
		// Private vars
		var
		plugin		= this,
		$element	= $(element),
		element		= element,
		defaults	= {
			foo: 'bar',
			onFoo: function() {}
		},
 
		// Private methods
		privateMethod = function() {
			// code goes here
		};
 
		// Public methods
		plugin.methods = {
			init: function() {
				plugin.settings = $.extend({}, defaults, options);
				// code goes here
			},
			publicMethod: function() {
				// code goes here
			}
		};
 
		// Public vars
		plugin.settings	= {};
		plugin.static	= pStatic;
 
		plugin.methods.init();
 
	}
 
	$.fn[pluginName] = function(options) {
		var	args	=	arguments;
        return this.each(function() {
        	var	i	=	$(this);
            if (undefined == (plugin = i.data(pluginName))) {
                var plugin = new $[pluginName](this, options);
                i.data(pluginName, plugin);
            } else if (plugin.methods[options]) {
            	plugin.methods[options].apply( plugin, Array.prototype.slice.call( args, 1 ));
            }
        });
 
	}
 
})(jQuery);
Usage
Code :
1
2
3
4
5
// init
$(element).boilerplate({foo:'bar'});
 
// call publicMethod
$(element).boilerplate('publicMethod', param1, param2);
Ce modèle a été aussi conçu comme un "pense bête", regroupant quelques idées dans le but de m'en rappeler au besoin mais que je commence en général par supprimer. Je pense par exemple à l'objet pStatic dont je ne me sert jamais ou la private var element.
On peut aussi vouloir passer la méthode init en private, rien de compliquer à ça mais par défaut je l'ai laissé en public.
Si vous avez des remarques, questions ou autre je suis à l'écoute
cahnory est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h16.


 
 
 
 
Partenaires

Hébergement Web