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 :

Synthaxe et factorisation


Sujet :

jQuery

  1. #1
    Membre actif
    Inscrit en
    Février 2009
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 616
    Points : 249
    Points
    249
    Par défaut Synthaxe et factorisation
    Bonsoir,

    Voila, je vous soumet le code suivant qui fonctionne bien,
    mais par soucis de bien faire, vos conseils m'intéresse.

    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() {
                 var select_text = $('#select_text');
    	var ass_nom = select_text.text();
    	var reg_ass_code =/^(.{3})(.*)$/; 
     
    	/**
    	* Retourne la liste des codes sélectionnés
    	*/
    	function get_checked_ass()
    	{
    		var ass_list = '';
    		var ass_checked ='';
    		$("[:checkbox]:checked").each(function(i) {
    			var id_checkbox = $(this).attr('id');
    			// Extrait le code de l'Id
    		    var ass_code = id_checkbox.replace(reg_ass_code,'$2');
    		    // Concatène les codes 
    		    ass_list += ass_code + ','; 
    		});
    		// Supprime la dernière virgule
    		ass_checked = ass_list.substring(0,ass_list.length-1);
    		// Affiche/Masque les parenthèses
    		var pOn = (ass_checked!='')?' (':''; var pOff = (ass_checked!='')?')':'';
    		return pOn + ass_checked + pOff;
        }
     
    	/**
    	* Ajouter/Suprime les codes sélectionnés
    	*/
    	$(":checkbox").click(function() {
    		var id_checkbox = $(this).attr('id');
    		if($(this).is(':checked')) {
    			select_text.text(ass_nom + get_checked_ass());
    		} else {
    			select_text.text(ass_nom + get_checked_ass());
     
    		}
    	});
    });
    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Bon... désolé, mais je peux pas m'en empêcher... Tu sais ce que veux dire "ass" en anglais ?
    Parce que ça donne une toute autre vision de ton code

    Sinon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $(":checkbox").click(function() {
    	var id_checkbox = $(this).attr('id');
    	if($(this).is(':checked')) {
    		select_text.text(ass_nom + get_checked_ass());
    	} else {
    		select_text.text(ass_nom + get_checked_ass());
    	}
    });
    Euh... je vois mal l'utilité du if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $(":checkbox").click(get_checked_ass);
    ne suffirait-il pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[:checkbox]:checked")

    Sauf erreur de ma part, la syntaxe $("[:checkbox]") n'existe pas...
    Sinon, à la place de ta concaténation, tu ferais mieux de stocker les résultats dans un tableau et d'utiliser .join(',') en fin de boucle...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre actif
    Inscrit en
    Février 2009
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 616
    Points : 249
    Points
    249
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Bon... désolé, mais je peux pas m'en empêcher... Tu sais ce que veux dire "ass" en anglais ?
    Parce que ça donne une toute autre vision de ton code
    Très drole.

    Euh... je vois mal l'utilité du if
    get_checked_ass() supprimée puisque plus nécessaire de factoriser.

    Sauf erreur de ma part, la syntaxe $("[:checkbox]") n'existe pas...
    Oups ! $(":checkbox:checked") http://www.innovativephp.com/blog/20...kbox-examples/

    Sinon, à la place de ta concaténation, tu ferais mieux de stocker les résultats dans un tableau et d'utiliser .join(',') en fin de boucle...
    Un exemple vaut mille post.

    Et merci.

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    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
    var ass_list = [];
    var ass_checked ='';
    $(":checkbox:checked").each(function(i) {
    	var id_checkbox = $(this).attr('id');
    	// Plus besoin de regexp
    	var ass_code = id_checkbox.substr(3);
    	// Ajoute au tableau
    	ass_list.push(ass_code); 
    });
    // Supprime la dernière virgule
    ass_checked = ass_list.join(',');
    // Alternative possible
    ass_checked = ass_list.toString();
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre actif
    Inscrit en
    Février 2009
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 616
    Points : 249
    Points
    249
    Par défaut
    Très intéressant !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Factoriser les couleurs en css
    Par kitov dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 09/09/2005, 15h09
  2. Comment factoriser un nombre ?
    Par AsmCode dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 09/08/2005, 15h24
  3. [Plugin] Factoriser les import (gestion des import)
    Par Oliveuh dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 08/07/2004, 12h21
  4. Synthaxe pour expression comprenant quote avec commande like
    Par loopy4321 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/07/2004, 12h21
  5. Réponses: 4
    Dernier message: 06/11/2003, 10h37

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