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 :

Afficher/Masquer des div


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut Afficher/Masquer des div
    Bonjour,

    J'ai un petit soucis avec mon javascript.
    J'essaye d'afficher/masquer un div mais ça ne fonctionne toujours pas alors que je suis sûr qu'il ne manque pas grand chose.

    Voilà déjà le code javascript :

    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
    function MM_findObj(n, d) { //v3.0
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
        alert('Layers : '+layers[i]);
     
    }
     
    function MM_showHideLayers() { //v3.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
      if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
      obj.visibility=v;
      }
        alert('showHideLayers : '+v);
     
    }	
     
    function onglet(p,n) {
    	if(document.getElementById) {
    		for(i=1;i<n+1;i++) {
    			document.getElementById('tab['+i+']').className='tab_off';
    			MM_showHideLayers('div'+i,'','hide');
    			//alert('boucle : div'+i+' - tab['+i+']');
    		}
            document.getElementById('tab['+p+']').className='tab_on';
    		MM_showHideLayers('div'+p,'','show');
    		alert('fin du if : div'+p+' - tab['+p+']');
        }
    }

    Et le code de ma page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <ul id="tabnav" >
    	<li id="tab[1]" class="tab_on"><a href="#" onClick="javascript:onglet(1,2);">Description</a></li>
    	<li id="tab[2]" class="tab_off"><a href="#" onClick="javascript:onglet(2,2);">Photos</a></li>
    </ul>
     
    <div id="div1" class="calque" style="position: absolute; visibility: visible; z-index: 1;">
    <p>Test 1</p>
    </div>
     
    <div id="div2" class="calque" style="visibility: hidden; z-index: 2;">
    <p>Test 2</p>
    </div>

    Si quelqu'un voit le petit bug !?

    Le premier id tabNav fonctionne bien, mais ce n'est pas tout à fait le même principe, on change juste la class.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 22
    Par défaut C'est bon
    Ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function MM_findObj(n, d) { //v4.0
    var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && document.getElementById) x=document.getElementById(n); return x;
    }
     
    function MM_showHideLayers() { //v3.0
    var i,p,v,obj,args=MM_showHideLayers.arguments;
    for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
    }
    J'ai mis à jour ces deux fonctions.

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

Discussions similaires

  1. afficher masquer des divs
    Par chris801 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 13/09/2011, 14h42
  2. Afficher / Masquer des div
    Par spawns dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 20/11/2008, 15h41
  3. Afficher / Masquer des DIV
    Par Bounty59 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/01/2007, 10h33
  4. Afficher / masquer des div
    Par Galaad dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/08/2006, 21h57
  5. Impossible d'afficher ou masquer des DIV
    Par ensemblevide dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 13h23

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