Bonjour à tous,
je continue sur ma lancée des plugins JQuery (que je réalise pour mes besoins) et je souhaitais utiliser les même principes que le flexigrid pour accéder à des méthodes mais je me heurte à un problème.
J'ai une fonction JQuery "filters" qui créer un div et fait ce qu'il à faire dedans.
Et j'ai 2 autres fonctions qui permettent en théorie de mettre à jour les options de mon "filters" et de le recharger (recharger l'IHM de ce div).
Sauf que lorsque j'essaye d'accéder à la variable params de mon élément HTML, elle n'existe pas, pourtant en débug, lorsque je fais "this.params = params;" dans la partie "filters", je vois bien que la variable params est attachée à mon élément HTML.
Ma question est donc : wtf ? Pourquoi je n'arrive pas à récupérer cette variable en faisant "this.params" dans les fonctions "filtersOptions" et/ou "filtersReload" ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 (function($) { /*JQUERY PLUGGIN*/ $.fn.filters = function(params) { /*Parameters*/ params = $.extend({ title: '', category: '', filters: [], open: true },params); /*No action so we init the container*/ if((typeof params)!="string"){ /*Change the container class*/ $(this).addClass("activeFilters"); /*Create the title*/ $(this).append(CreateDivTitle(params)); /*Create the content*/ $(this).append(CreateDivContent(params)); }else{ //Action asked } this.params = params; return this; }; $.fn.filtersOptions = function (params) { //function to update general options return this.each(function () { $.extend(this.params, params); }); }; $.fn.filtersReload = function (params) { //function to update content return this.each(function () { $.extend(this.params, params); $("#activeFiltersContent").remove(); /*Re create the content*/ $(this).append(CreateDivContent(this.params)); }); }; })(jQuery);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $('#activeFilters').filters({title: filtersTitle[0], category: filterAll[0], open: true}); var arrayTest = ['Severité 1','Site : Tours']; $('#activeFilters').filtersOptions({filters: arrayTest});
NB : le code est toujours en développement. Les fonctions Create[...] ne font qu'insérer du HTML.
Merci à tous et joyeux noël en léger retard puisque je n'ai pas eu l'occasion de vous le souhaiter![]()
Partager