IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Attacher une variable à un élément HTML


Sujet :

jQuery

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut Attacher une variable à un élément HTML
    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

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir

    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
    (function($) {
    	$.fn.filters = function(params){
     
    		// modifie $.fn.filters.params avec params
    		$.extend($.fn.filters.params, params);
     
    		return this;
    	};
     
    	$.fn.filtersOptions = function(params){
    		// modifie $.fn.filters.params avec params
    		$.extend($.fn.filters.params, params);
     
    		return this;
    	};
     
    	$.fn.filtersReload = function(params) {
     
    		return this.each(function(){
    			// modifie $.fn.filters.params avec params
    			$.extend($.fn.filters.params, params);
     
    			$(this).append( CreateDivContent($.fn.filters.params) );
    		});
    	};
     
    	// la version par défaut
    	$.fn.filters.params = {
    		"title": '',
    		"category": '',
    		"filters": [],
    		"open": true
    	};
    })(jQuery);

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    Mais est ce que cela fait que params est lié au composant auquel j'applique mon pluggin "filters" ? J'en ai pas l'impression.
    Parce que si j'ai plusieurs appels à mon pluggin dans la même pages, tous mes composants vont partager les mêmes options ?

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par titmael Voir le message
    [...], tous mes composants vont partager les mêmes options ?
    Oui !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    Comment faire alors pour que "params" ne soit lié qu'à l'élement HTML auquel j'applique mon pluggin ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    data() ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 94
    Par défaut
    J'ai bien essayé de mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(this).data('params',params);
    à la place de
    Mais ça ne change rien ... je vois pas si je m'y prend mal ou non

  8. #8
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    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
    (function($) {
    	$.fn.filters = function(params){
     
    		return this.each(function(i, item){
    			// $.fn.filters.params n'est plus modifié par params
    			var opts = $.extend(true, {}, $.fn.filters.params, params);
     
    			$(item).data("params", opts);
    		});
    	};
     
    	$.fn.filtersOptions = function(params){
     
    		return this.each(function(i, item){
    			var opts = $(item).data("params");
     
    			// on modifie les options existantes
    			$.extend(opts, params);
     
    			// on sauvegarde les modifications
    			$(item).data("params", opts);
    		});
    	};
     
    	$.fn.filtersReload = function() {
     
    		return this.each(function(i, item){
    			$(item).append( CreateDivContent( $(item).data("params") ) );
    		});
    	};
     
    	// la version par défaut
    	$.fn.filters.params = {
    		"title": '',
    		"category": '',
    		"filters": [],
    		"open": true
    	};
    })(jQuery);

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Assigner dans une variable un élément de ma liste
    Par EGdubs dans le forum Langage
    Réponses: 3
    Dernier message: 27/04/2015, 16h50
  2. Inclure une variable dans le HTML BODY d'un mail
    Par LANGAZOU dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 18/03/2015, 12h39
  3. utiliser une variable javascript en html
    Par walido dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/10/2009, 18h19
  4. Recupération d'une variable dans inner.HTML
    Par Irad78 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/04/2007, 13h51
  5. Utilisation d'une variable Javascript en html
    Par Crazynoss dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/10/2005, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo