Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit soucis avec header

    23 août 2010 à 13:34:04

    Bonjour,
    J'utilise ce petit script en js afin de pouvoir afficher mes sous menus pour mon header:
    <script type="text/javascript">
    		function toggleVisibility(tagId) {
    			if (!document.getElementById) {
    				msg = 'Votre navigateur est trop ancien pour profiter de votre visite\n';
    				msg += 'Veuillez le mettre à jour ou vous en procurer un autre';
    			return false;
    			}
    			var tagToToggle;
    			try { 
    				tagToToggle = document.getElementById(tagId);
    			} catch (e) {
    				alert('Je n\'ai pas pu trouver la balise cible');
    			}
    			try { 
    				if (tagToToggle.style.display == 'none') {
    					tagToToggle.style.display = 'inline';
    				} else {
    				tagToToggle.style.display = 'none';
    				}
    			} catch (e) {
    			}
    			// Pour IE
    			if (tagToToggle.style.visibility == 'hidden') {
    				tagToToggle.style.visibility = 'visible';
    			} else {
    				tagToToggle.style.visibility = 'hidden';
    			}
    		}
    	</script>
    


    Or quand je clique sur plusieurs bouton il affiche ceux qui ont été précédemment cliqué, comment éviter ce petit problème.

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      23 août 2010 à 13:59:00

      Salut,
      Tester l'existence de document.getElementById c'est de l'abus quand même !! :waw: Cite moi un navigateur encore utilisé qui ne gère pas cette méthode...

      Je pense que pour résoudre ton problème, on a besoin du code qui appelle la fonction toggleVisibility()
      • Partager sur Facebook
      • Partager sur Twitter
        23 août 2010 à 16:44:05

        Citation : LCaba

        Salut,
        Tester l'existence de document.getElementById c'est de l'abus quand même !! :waw: Cite moi un navigateur encore utilisé qui ne gère pas cette méthode...

        Je pense que pour résoudre ton problème, on a besoin du code qui appelle la fonction toggleVisibility()


        Dans le parc des navigateurs il y en a certains qui sont très très vieux.

        Voici le code qui appelle la fonction tooglevisibility:

        <div id="tabcontent">
        			<a href="javascript:toggleVisibility('bigmenu1')">Big Menu 1</a> | 
        			<a href="/" title="">Big Menu 2</a> | 
        			<a href="javascript:toggleVisibility('bigmenu3')">Big Menu 3</a> | 
        			<a href="/" title="">Big Menu 4</a> | 
        		</div>
                        <div id="bigmenu1" style="visibility: hidden; display: none;">
        		        <a href="/">Sub 1</a> 
        		        <a href="/">Sub 2</a> 
        	        </div>
                        <div id="bigmenu3" style="visibility: hidden; display: none;">
        		        <a href="/">Sub 4</a> 
        		        <a href="/">Sub 5</a> 
        	         </div>
        
        • Partager sur Facebook
        • Partager sur Twitter
          23 août 2010 à 19:45:59

          Citation : Cyprien Laleau

          Dans le parc des navigateurs il y en a certains qui sont très très vieux.



          Faut pas abuser non plus. Déjà se soucier IE6 c'est être nécrophile. Mais document.getElementById c'est déjà implémenté sur IE4 et netscape ! T'avances pas si tu fait des tests à tout bout de champs, pourquoi pas if(!alert) ? Et tes try/catch à tout bout de champs ça rend le code illisible, donc ingérable.

          Ensuite, bien que cela fonctionne comme ça, le javascript n'a rien a faire dans un href. De même qu'on évite de mettre le CSS au milieu du html.

          Pour ton problème : tu oublies, lorsque tu fait apparaitre un menu, de faire disparaitre les autres.

          if (tagToToggle.style.display == 'none') {
                  // Ici tu dois mettre tous les sous-menus en display:none avant de faire apparaitre celui concerné.
          	tagToToggle.style.display = 'inline';
          }
          
          • Partager sur Facebook
          • Partager sur Twitter

          Petit soucis avec header

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown