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 :

Comment rendre plus propre ce code super simple svp ?


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut Comment rendre plus propre ce code super simple svp ?
    Bonjour,

    déjà 3 heures que je galère pour optimiser un truc à 2 balles... juste dans un soucis de propreté

    voilà mon script:
    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
        $(document).ready(function() {
         $('#HideMe').show();
     
        $('#shide').click(function() {
        $('#HideMe').show('fast');
        });
     
    	 $('#shide2').click(function() {
         $('#HideMe').show('fast');
         });
     
     
         $('#shide3').click(function() {
          $('#HideMe').hide('fast');
     
          });
    });
    et le code html qui l'appelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <input id="shide" type="radio" name="subscribe" value="1" checked />
    <input id="shide2" type="radio" name="subscribe" value="2" />
    <input id="shide3" type="radio" name="subscribe" value="3" />
    mais question est : Comment rendre plus propre le javascript afin de ne pas être obligé de dupliquer les id à chaque bouton radio ?
    En gros j'ai 3 boutons radios : 2 servent à afficher une div et un pour la cacher, selon la selection.

    merci d'avance, je pète un plomb devant ma nullité absolue dans le domaine.

  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 : 54
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut,

    le sélecteur $ de jQuery accepte plusieurs paramètres il me semble, tu peux donc tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $('#shide', '#shide2', '#shide3').click(function() {
        $(this).val()==3 ? $('#HideMe').hide('fast') : $('#HideMe').show('fast');
    }
    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 averti Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut
    merci bovino, j'avais déjà essayé un truc comme ça mais ça ne fonctionne pas

    en fait je cherche à faire un truc dans ce style mais sans passer par les
    mais sans passer par des "input onclick="...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <input onclick="javascript: $('#HideMe').show('slow');" type="radio" name="subscribe" value="1" checked />
        <input onclick="javascript: $('#HideMe').show('slow');" type="radio" name="subscribe" value="2" />
        <input onclick="javascript: $('#HideMe').hide('slow');" type="radio" name="subscribe" value="3" />

  4. #4
    Membre expérimenté Avatar de onirisme
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Novembre 2004
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2004
    Messages : 221
    Par défaut
    Bonjour,

    J'ai pas bien compris l'objectif de ton script... Que cherches-tu à faire au final ? Qui a t'il dans "#hideme'?

    Tu devrais peut-être passer par des attributs de class ce qui te permet de regrouper des comportements identiques sur des balises différentes :

    Bon, cela dit, regarde ce code et dis nous si c'est ce que tu veux (j'ai réduit ton code d'une seule ligne mais c'est déjà ca ) :

    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
     
    <script>
    	$(document).ready(function(){
    		$('.helper').not('.helper:last').click(function(){
    			$("#hideme").show();
     
    		});
    		$(".helper:last").click(function(){
    			$("#hideme").hide();
    		});
    	});
    </script>
    <body>
        <label>Input 1</label><input class="helper" id="id1" type="radio" name="subscribe" value="1"><br/>
        <label>Input 2</label><input class="helper" id="id2" type="radio" name="subscribe" value="2"><br/>
        <label>Input 3</label><input class="helper" id="id3" type="radio" name="subscribe" value="3"><br/>
        <div id="hideme">
    	<p>
    		Mon texte à moi...
    	</p>
        </div>
    </body>

  5. #5
    Membre averti Avatar de frakosun
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2007
    Messages : 54
    Par défaut
    Voilà c'est ça ce que je voulais faire, merci onirisme !

    En fait je voulais rendre plus propre le code en "regroupant les comportements identiques", sans passer par des ids différents sur chaque input pour que ça fonctionne (je ne savais pas comment expliquer cela). Rigolez pas j'ai essayé pendant 3h sans succès, en passant par la valeur du champ ou des ids... je suis trop un quiche en jQuery c'est dingue. Pourtant j'essaie...

    Sinon dans le hideme pour te répondre il y a un champ de formulaire facultatif ou obligatoire selon le choix effectué avec les boutons radios.


    Un grand merci à tous les 2 en tout cas, voilà une journée qui commence bien

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

Discussions similaires

  1. Comment rendre ce code plus propre ?
    Par n0-sheep dans le forum C++
    Réponses: 2
    Dernier message: 15/12/2013, 17h31
  2. Comment rendre un code MATLAB plus rapide?
    Par ERICKO dans le forum MATLAB
    Réponses: 9
    Dernier message: 04/07/2012, 17h47
  3. Comment rendre ce code plus "générique" ?
    Par Yann39 dans le forum jQuery
    Réponses: 14
    Dernier message: 10/11/2010, 10h42
  4. Faut-il commenter son code source pour le rendre plus lisible et maintenable ?
    Par mayayu dans le forum Débats sur le développement - Le Best Of
    Réponses: 149
    Dernier message: 09/11/2009, 02h30
  5. rendre mon code plus propre
    Par superspike23 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 26/01/2008, 10h10

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