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 :

Panneau réductible mal utilisé


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut Panneau réductible mal utilisé
    Bonjour, je débute en script et je suis actuellement en stage au sein d'une entreprise ou je m'occupe de quelques modifs du site web.

    Ainsi mon patron veut que j'ajoute un bouton Fiche Technique a une page, qui lorsque l'on l'active en cliquant, déplace la "vue" de la page vers le bas en activant un panneau réductible qui est déjà sur le site.

    J'ai donc fait ceci:
    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
     
    <div id="bouton_fiche_technique">
    <div class="CollapsiblePanelTab" tabindex="0">
    <a href="http://www.truc.com/php/fr/page.php#FicheTechniqueProduit" onClick="cliquer()" >Fiche technique</a></div>
     
    <script type="text/javascript">
    function cliquer(){
    var CollapsiblePanel = new Spry.Widget.CollapsiblePanel("FicheTechniqueProduit", {contentIsOpen:true});}
    </script>
    </div>  </div>
     
            <div id="Texteproduit">
       	  <h1>Blablabla ....</h1>
          	<p class="PrésentationProduit">...<br/><br/>
    		...</p>
            <p class="DimensionsProduit">  ...</p>
          </div></div>
     
     
    <div id="FicheTechniqueProduit" class="CollapsiblePanel">
      <div class="CollapsiblePanelTab" tabindex="0"">+ FICHE TECHNIQUE</div>
      	<div class="CollapsiblePanelContent">
    MODE D'EMPLOI, etc...
    </div></div>
     
     
    <script type="text/javascript" src="../../js/slider_produits/jquery-1.4.2.min.js"></script>	
    <script type="text/javascript" src="../../js/slider_produits/jquery-ui-1.8rc3.custom.min.js"></script>
    <script src="../../js/panneau_spry/SpryCollapsiblePanel.js" type="text/javascript"></script>
    <script type="text/javascript">
    var CollapsiblePanel1 = new Spry.Widget.CollapsiblePanel("FicheTechniqueProduit", {contentIsOpen:false});
    </script>
    <?php include 'footer_fr.php'; ?>
    Ainsi, lorsque l'on clique sur le fiche technique en haut de page, l'utilisateur est dirigé plus bas vers la page, vers la fiche technique qui s'ouvre dans un panneau qu'il est possible de refermer en cliquant sur le "+ Fiche Technique".

    J'espère que vous suivez^^ Ceci donne:
    http://www.vidamecreation.com/php/fr...rts_photos.php

    Mais comme vous pouvez le voir, si après avoir refermé le panneau, l'utilisateur veut le réouvrir, le footer se remet "sur" la fiche technique. Je pense que mon bug est dans le {contentIsOpen:false} mais je ne vois pas.

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    Salut !

    Si j'ai bien compris c'est un problème d'affichage nan ?

    Mais tout marche bien chez moi, sous Firefox et IE l'affichage est nickel

    J'ai mal compris le problème ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    Salut the-destroyer, merci pour ta réponse.

    En fait, le problème survient de cette façon:

    - Après avoir utilisé le bouton Fiche technique du haut, le panneau se déroule et la vue de l'utilisateur est placée. ->OK

    - Puis en cliquant sur le " + FICHE TECHNIQUE" (le bouton du bas donc, vu que je me retrouve avec 2 boutons fiche technique sur la page), le panneau se "ré-enroule". ->OK

    Et a partir de ce moment, si l'utilisateur veut ré-ouvrir la fiche technique, parce qu'il n'a pas bien vu le nombre de vis fournie par exemple, ça cafouille. Le panneau se déroule et se ré-enroule aussitôt, etc... -> pas OK.

    Le cafouillage survient donc lorsque l'on active ces boutons une deuxième fois. Si tu as le courage de jeter un oeil, merci d'avance.

  4. #4
    Membre confirmé Avatar de the-destroyer
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 204
    Par défaut
    D'accord je vois où est le problème j'avais pas vu '

    Bon j'ai essayer de m'y retrouvé avec firebug mais c'est assez compliqué ^^'

    Le problème c'est que lorsque tu ouvres le panneau avec "div#bouton_fiche_technique" la fonction qui ouvre le panneau n'est pas averti qu'il est maintenant ouvert, pour lui il reste fermé, d'où le bug d'affichage, il essait de l'ouvrir mais il est déjà ouvert mais, si tu attributs la fonction de "+ Fiche Technique" (div#FicheTechniqueProduit) a "Fiche technique" (div#bouton_fiche_technique), les deux fonctions d'ouverture étant les même il ne devrait pas y avoir de problème d'affichage car pas de confusion entre l’état de div#ficheTechniqueProduit (ouvert ou fermé), essait et tu me dis ce que ca donne (je sais pas si j'ai etais clair )

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    si l'on observe ton code on trouve tout d'abord
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <script type="text/javascript">
    function cliquer(){
    var CollapsiblePanel1 = new Spry.Widget.CollapsiblePanel("FicheTechniqueProduit", {contentIsOpen:true});}
    </script>
    relatif au premier Fiche technique, puis plus loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <script type="text/javascript">
    var CollapsiblePanel1 = new Spry.Widget.CollapsiblePanel("FicheTechniqueProduit", {contentIsOpen:false});
    </script>
    qui initialise le deuxième Fiche technique.

    Il y en a un de trop!

    Lorsque tu cliques sur le 1st boutton tu recrées un new CollapsiblePanel mettant par le fait en "délicatesse" celui crée à l'initialisation de la page et ce qui en découle.

    Dans la démarche il te faut créer le new CollapsiblePanel puis pour ton 1st Bouton, gérer si celui ci est fermé ou ouvert et agir en conséquence.

    Il existe la méthode sOpen qui renvoie justement l'état du panel.

    Ta fonction cliquer() pourrait ressembler à cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function cliquer(){
      var oPanel = typeof( CollapsiblePanel1) !== 'undefined' ? CollapsiblePanel1 : null;
      if( oPanel){
       if (oPanel.isOpen())
        oPanel.close();
       else
        oPanel.open(); 
    }
    la première ligne est là uniquement pour vérifier que si le panel n'a pas encore été constuit un click sur le 1st bouton ne fera pas planter le reste du script.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    Youpi, ça marche, merci les gars.
    Maintenant y'a juste la vue qui est mal "redirigée" du coup, je vais voir ça.
    merci encore.
    ça donne donc: http://www.vidamecreation.com/php/fr...rts_photos.php

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 13
    Par défaut
    Bon ben c'est réglé, post résolu grace a vous, merci!

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

Discussions similaires

  1. [XL-2010] Select case mal utilisé
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/01/2012, 16h34
  2. Panneau réductible quand il veut
    Par Timor35 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/07/2011, 14h09
  3. Réponses: 4
    Dernier message: 03/09/2008, 15h15
  4. [AJAX] Ancre nommée dans un panneau réductible Spry
    Par Cytise dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 01/06/2008, 09h10
  5. Fonction replace limité ? mal utilisé ?
    Par ReaseT dans le forum ASP
    Réponses: 3
    Dernier message: 11/12/2006, 11h30

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