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

JavaScript Discussion :

Raccourcir un script qui fonctionne


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut Raccourcir un script qui fonctionne
    Bonjour tous le monde !

    Je début en javascript est je voudrai si possible raccoursir la taille de mon code.
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
     
    // Affichage de la page connecxion.php
    function affConnecxion() {
    	if ( a == true ) {
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="none" ;
    		document.getElementById("connecxion").style.display="block" ;
    		document.getElementById("boutDeco").style.display="block";
    		document.getElementById("boutCo").style.display="none";
    		document.getElementById("ouvrage").style.display="none" ;
    		a = false ;
    		b = true ;
    		c = true ;
    		} else {
    			document.getElementById("connecxion").style.display="none" ;
    			document.getElementById("ouvrage").style.display="none" ;
    			document.getElementById("sujet").style.display="none" ;
    			document.getElementById("titre").style.display="block" ;
    			a = true ;
    			b = true ;
    			c = true ;
    		}
    }
     
    // Affichage de la page sujet.html
    function affSujet() {
    	if ( b == true ) {
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="block" ;
    		document.getElementById("connecxion").style.display="none" ;
    		document.getElementById("ouvrage").style.display="none" ;
    		document.getElementById("boutCo").style.display="block";
    		document.getElementById("boutDeco").style.display="none";
    		a = true ;
    		b = false ;
    		c = true ;
    		} else {
    			document.getElementById("connecxion").style.display="none" ;
    			document.getElementById("ouvrage").style.display="none" ;
    			document.getElementById("sujet").style.display="none" ;
    			document.getElementById("titre").style.display="block" ;
    			a = true ;
    			b = true ;
    			c = true ;
    		}
    }
     
    // Afficher la liste des ouvrages
    function affOuv() {
    	if ( c == true ) {
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="none" ;
    		document.getElementById("connecxion").style.display="none" ;
    		document.getElementById("ouvrage").style.display="block" ;
    		document.getElementById("boutCo").style.display="block";
    		document.getElementById("boutDeco").style.display="none";
    		a = true ;
    		b = true ;
    		c = false ;
    		} else {
    			document.getElementById("connecxion").style.display="none" ;
    			document.getElementById("ouvrage").style.display="none" ;
    			document.getElementById("sujet").style.display="none" ;
    			document.getElementById("titre").style.display="block" ;
    			a = true ;
    			b = true ;
    			c = true ;
    		}
    }
     
    // Fonction event
    function addEvent(elt,evt,fct) {
    	if (document.addEventListener) {
    		elt.addEventListener(evt,fct,false);
    		} else {
    			elt.attachEvent('on'+evt,fct);
    			}
    }
     
    // Affichage de la page sujet.html
    function init(){
    	document.getElementById("titre").style.display="block" ;
    	document.getElementById("sujet").style.display="none" ;
    	document.getElementById("connecxion").style.display="none" ;
    	document.getElementById("ouvrage").style.display="none" ;
    		document.getElementById("boutCo").style.display="block";
    		document.getElementById("boutDeco").style.display="none";
    	a = true ;
    	b = true ;
    	c = true ;
    }
    Voila ma question je voudrai savoir si il me serai pas plus simple de recuperai la valeur de l'id du bouton sur le quel je clic et changer juste la valeur du display en question ?

    Merci pour vos réponces
    bpascal91

  2. #2
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Fais-toi une petite fonction pour factoriser tous ces appels ^^
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function display(elems, etat) {
        for (var i = 0, iMax = elems.length; i < iMax; ++i)
            document.getElementById(elems[i]).style.display = etat;
    }
    qui te permet de remplacer par exemple ceci :

    avant
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="block" ;
    		document.getElementById("connecxion").style.display="none" ;
    		document.getElementById("ouvrage").style.display="none" ;
    		document.getElementById("boutCo").style.display="block";
    		document.getElementById("boutDeco").style.display="none";
    après
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    display(["sujet", "boutCo"], "block");
    display(["titre", "connecxion", "ouvrage", "boutDeco"], "none");

  3. #3
    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
    mauvais choix de nom de fonction ?
    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 !

  4. #4
    Membre Expert
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    mauvais choix de nom de fonction ?
    Pour connecxion ? Ca m'a frappé aussi au début mais la faute est partout ^^

    Autre chose au fait si tu veux raccourcir ton code :
    avant
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    a = true;
    b = true;
    c = true;
    après
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    a = b = c = true;
    ^^

    Et aussi :
    avant
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    if (a == true) ...
    après(s'il s'agit de booléens comme ici, car dans certains autres cas de figure ça peut être plus complexe)

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2010
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2010
    Messages : 11
    Par défaut
    ok merci je vais mettre tout ca en pratique de suite ...

    Je dois louper quelque chose ou pas bien le faire
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    Code JS :
    var a = b = c = true ;
    // Fonction des menu
    function affMenu(elems, etat) {
    	for (var i = 0, iMax = elems.length; i < iMax; i++)
    		document.getElementById(elems[i]).style.display = etat;
    		display(["sujet", "boutonCo"], "block");
    		display(["titre", "connecxion", "ouvrage", "boutonDeco"], "none");
    }
     
    // Affichage de la page connecxion.php
    function affConnecxion() {
    	if ( a == true ) {
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="none" ;
    		document.getElementById("connecxion").style.display="block" ;
    		document.getElementById("boutDeco").style.display="block";
    		document.getElementById("boutCo").style.display="none";
    		document.getElementById("ouvrage").style.display="none" ;
    		a = false ;
    		b = c = true ;
    		} else {
    			document.getElementById("connecxion").style.display="none" ;
    			document.getElementById("ouvrage").style.display="none" ;
    			document.getElementById("sujet").style.display="none" ;
    			document.getElementById("titre").style.display="block" ;
    			a = b = c = true ;
    		}
    }
     
    // Affichage de la page sujet.html
    function affSujet() {
    	if ( b == true ) {
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="block" ;
    		document.getElementById("connecxion").style.display="none" ;
    		document.getElementById("ouvrage").style.display="none" ;
    		document.getElementById("boutCo").style.display="block";
    		document.getElementById("boutDeco").style.display="none";
    		a = c = true ;
    		b = false ;
    		} else {
    			document.getElementById("connecxion").style.display="none" ;
    			document.getElementById("ouvrage").style.display="none" ;
    			document.getElementById("sujet").style.display="none" ;
    			document.getElementById("titre").style.display="block" ;
    			a = b = c = true ;
    		}
    }
     
    // Afficher la liste des ouvrages
    function affOuv() {
    	if ( c == true ) {
    		document.getElementById("titre").style.display="none" ;
    		document.getElementById("sujet").style.display="none" ;
    		document.getElementById("connecxion").style.display="none" ;
    		document.getElementById("ouvrage").style.display="block" ;
    		document.getElementById("boutCo").style.display="block";
    		document.getElementById("boutDeco").style.display="none";
    		a = b = true ;
    		c = false ;
    		} else {
    			document.getElementById("connecxion").style.display="none" ;
    			document.getElementById("ouvrage").style.display="none" ;
    			document.getElementById("sujet").style.display="none" ;
    			document.getElementById("titre").style.display="block" ;
    			a = b = c = true ;
    		}
    }
     
    // Fonction event
    function addEvent(elt,evt,fct) {
    	if (document.addEventListener) {
    		elt.addEventListener(evt,fct,false);
    		} else {
    			elt.attachEvent('on'+evt,fct);
    			}
    }
     
    // Affichage de la page sujet.html
    function init(){
    	document.getElementById("titre").style.display="block" ;
    	document.getElementById("sujet").style.display="none" ;
    	document.getElementById("connecxion").style.display="none" ;
    	document.getElementById("ouvrage").style.display="none" ;
    	document.getElementById("boutCo").style.display="block";
    	document.getElementById("boutDeco").style.display="none";
    	a = b = c = true ;
    }
     
    // appel de fonction init 
    addEvent(window, 'load', init);
    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
    code html :
    <div id="MV" class="MenuVert">
    <p>
    	<?php
    		require_once('fonctionPHP.php') ;
    		Bonjour('') ; 
    	?>
        <br />
        <ul>
            <li><a id="btaccueil" href="#" onClick="init()">Accueil</a></li>
            <li><a id="btsujet" href="#" onClick="affMenu("sujet", "block")">Sujet</a></li>
        </ul>
        <br />
        <ul>
            <li><a id="btouvrage" href="#" onClick="affOuv()">Liste des ouvrages</a></li>
        	<li><a id="btrecherche" href="#" onClick="affOuv()">Recherche</a></li>
        </ul>
        <br />
     
    </div>
    J'ai tester que sur le bouton sujet est ca marche pas mes div son dans d'autre page

  6. #6
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function display(elems, etat) {
        for (var i = 0, iMax = elems.length; i < iMax; ++i)
            document.getElementById(elems[i]).style.display = etat;
    }
    function affMenu() {
        display(["sujet", "boutonCo"], "block");
        display(["titre", "connecxion", "ouvrage", "boutonDeco"], "none");
    }

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/11/2010, 11h08
  2. Réponses: 11
    Dernier message: 09/09/2010, 02h53
  3. Script qui fonctionne sous FireFox mais pas sous IE
    Par Sebastien14 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 27/01/2009, 10h32
  4. [MySQL] vos avis sur un script qui fonctionne pas
    Par younek dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2008, 16h47
  5. [Configuration] script qui fonctionne en mode console et non a partir d'un browser
    Par nannous dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 06/12/2006, 11h50

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