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 :

ordre d'affichage / masquage fonctions Javascript


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut ordre d'affichage / masquage fonctions Javascript
    Bonjour à tous.

    J'ai 2 fonctions en javascript qui me permettent d'afficher un div puis de le cacher.

    voici le 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
     
    function ShowDiv(id){
    		  if(document.getElementById(id).className=='hide'){
    		  document.getElementById(id).className='';
    		  $('#'+id).show('slow')
    		  }
    		  else
     
    		  {
    		  document.getElementById(id).className='hide';
    		  $('#'+id).hide('slow')
    		  }
     
    		  }
     
     
    function HideDiv(id){
    			   if(document.getElementById(id).className!='hide'){
    			   document.getElementById(id).className='hide';
    		  $('#'+id).hide('slow')
    			   }
     
    		   }
    Les 2 fonctions marchent bien mais quand j 'ai ma liste de lien par exemple :

    foot-----hand------basket------etc.....

    En cliquant sur foot par exemple mon div s'affiche et ensuite je voudrai que lorsque je click sur hand il me ferme d'abord le div correspondant au foot.

    J'ai fait avec un onblur mais le probleme est que en cliquant n'importe où ca me ferme le div. On ne peut meme pas faire de copier coller par exemple.

    Voila j'espere que quelqu'un pourra m'aider.... Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    salut,

    tu peux faire un hide sur ton foot et le div du foot sur l'evenement onmouseout.


    Sinon tu peux faire une fonction hideAll() qui cache toutes les div et tu l'appelle au debut de ta fonction ShowDiv().

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    j ai essayer de faire ceci mais ca ne marche pas.

    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
     
     function sssShowDiv(id){
     
      		  if(document.getElementById(id).className!='hide'){
    		  document.getElementById(id).className='hide';
    		  $('#'+id).hide('slow')
    			   }
    		  if(document.getElementById(id).className=='hide'){
    		  document.getElementById(id).className='';
    		  $('#'+id).show('slow')
    		  }
    		  else
     
    		  {
    		  document.getElementById(id).className='hide';
    		  $('#'+id).hide('slow')
    		  }
     
    		  }


    une idée ?

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    Premiere remarque :

    tu as deux if suivi d'un else. Vu les tests que tu fais il ne rentrera jamais dans le else. Illustration :

    • cas "className != hide" :
    - il rentre dans le premier test
    - il met le className a 'hide'
    - du coup il rentre dans le deuxieme if (donc rentre pas dans le else)

    • cas className == hide :
    - il ne rentre pas dans le premier if
    - il rentre dans le 2eme if (donc rentre pas dans le else)

    Ensuite, je repete ce que j'ai dit dans mon post precedent :
    Tu appelles une fonction hideAll() au debut de ta fonction sssShowDiv() qui cache tous tes menus. Et ensuite tu affiche le menu dont tu as passe l'id en parametre. Ca t'enleve encore un test du coup ! O_ô'

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 56
    Points : 47
    Points
    47
    Par défaut
    merci beaucoup mais je ne sais pas comment faire pour fermer tous les élements.

    Le code que j'ai je l ai pris et adapter c'est tout

    j ai trouver une solution barbare mais bon :

    onclick="sssHideDiv('hand'); sssHideDiv('basket'); sssShowDiv('foot');" >

    le probleme est que si j ai 30 liens je vais devoir faire 30 copier coller

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 265
    Points : 284
    Points
    284
    Par défaut
    Ah vi c'est sur mais au moins t'as compris !

    après tu as plusieurs solutions pour faciliter l'ajout de nouveaux menus :
    1) tu crées tes menus en menu1 menu2 menu3 au lieu de hand basket foot etc.. et tu as besoin d'une variable t'indiquant le nombre de menus.

    2) si tu veux garder tes noms hand basket etc je te conseillerai alors de les renommer en : menu_hand menu_basket menu_foot etc..
    Du coup tu récupères toutes les div par un getElementsByTagName() puis tu teste si la div est une div du menu par un substr(0,5) sur l'id pour savoir si c'est une div du menu. Du coup t'as pas besoin de connaitre le nombre de menus que tu as. Faut juste faire attention a pas nommer "menu_blabla" une div qui fait pas partie du menu mais bon ça se fait bien

    J'espère avoir été clair...

Discussions similaires

  1. Affichage d'une div avec une fonction Javascript
    Par maxime-mb dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/01/2012, 11h09
  2. Affichage avec une fonction javascript
    Par Invité dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 15/10/2011, 12h07
  3. Réponses: 5
    Dernier message: 02/05/2008, 14h46
  4. Ordre d'appel fonction Javascript
    Par jeannot1974 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2006, 16h16
  5. appel xmlservice via fonction javascript
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 06/05/2003, 14h24

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