Partage
  • Partager sur Facebook
  • Partager sur Twitter

Hide / Show dans mon FAQ

La page remonte a chaque fois

Sujet résolu
    11 avril 2009 à 15:48:34

    Hello :)

    Sur mon site dans mon FAQ, quand on cliques sur une des quesitons du FAQ, la réponse à la question du FAQ apparait en dessous. Quand on recliques sur la question, elle disparait.
    <script language="javascript"> 
    <!--
    var state = 'none';
    
    function showhide(layer_ref) {
    
    if (state == 'block') { 
    state = 'none'; 
    } 
    else { 
    state = 'block'; 
    } 
    if (document.all) { //IS IE 4 or 5 (or 6 beta) 
    eval( "document.all." + layer_ref + ".style.display = state"); 
    } 
    if (document.layers) { //IS NETSCAPE 4 or below 
    document.layers[layer_ref].display = state; 
    } 
    if (document.getElementById &&!document.all) { 
    hza = document.getElementById(layer_ref); 
    hza.style.display = state; 
    } 
    } 
    //--> 
    </script>
    

    <p><a href="#" onclick="showhide('div1');">show/hide me</a></p> 
    <div id="div1" style="display: none;">This is the content</div>
    

    Ma question est la suivante: Comment faire pour que quand je cliques sur le lien pour afficher le div caché, que la page ne remonte pas en tout en haut ?
    Le système fonctione sans soucis mais quand je cliques sur une des questions du faq qui se trouve en bas de page, le div apparait mais je suis renvoyé en haut de page, et a chaque fois devoir redescendre pour voir la réponse c'est un peu ennuyant.

    Merci bcp ;)


    • Partager sur Facebook
    • Partager sur Twitter
      11 avril 2009 à 15:52:57

      <p><a href="#" onclick="showhide('div1'); return false;">show/hide me</a></p>

      Et comme dirait Nod_ "eval c'est le mal".

      Edit : par défaut les <div /> sont cachées ? Ils vont se marrer ceux qui ont le JS off.

      Edit² : pourquoi faire 3if ? Les else if c'est fait pour ça et ça améliore les perfs :p
      • Partager sur Facebook
      • Partager sur Twitter
        11 avril 2009 à 16:18:54

        if (document.all) { //IS IE 4 or 5 (or 6 beta) 
        eval( "document.all." + layer_ref + ".style.display = state"); 
        } 
        if (document.layers) { //IS NETSCAPE 4 or below 
        document.layers[layer_ref].display = state; 
        } 
        if (document.getElementById &&!document.all) { 
        hza = document.getElementById(layer_ref); 
        hza.style.display = state; 
        }
        


        Tout simplement useless.
        Juste:

        hza = document.getElementById(layer_ref); 
        hza.style.display = state;
        




        Sérieux, deja que c'est galère de faire un code compatible IE7. Encore on peut essayer de faire quelque chose avec ie6.
        Mais avant laisse béton. C'est même pas la peine -_-
        Même si un clanpin passe par la avec ce navigateur, bah il a cas se mettre a jour -_-
        Il a au moins 3 voir 4 générations de retard -.-
        • Partager sur Facebook
        • Partager sur Twitter

        Hide / Show dans mon FAQ

        × 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