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

Bibliothèques & Frameworks Discussion :

Effect.toggle et Element.visible [Prototype]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 402
    Par défaut Effect.toggle et Element.visible
    Bonjour,

    Je souhaite afficher/masquer une DIV en alternant en outre le texte qui appelle l'affichage et le masquage : le texte "afficher" si la DIV est masquée (par défaut) ou le texte "masquer" si la DIV est affichée.
    Mais le code suivant n'est pas fonctionnel (la librairie Prototype et Scripaculous sont bien appelées dans le head) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <p id="affichage"  style="cursor: pointer;" 
    onClick="Effect.toggle('menu', 'blind', { duration: 2.0, afterFinish: function(){
      if(Element.visible('menu')() ) {
       Element.update("affichage","masquer");
      } else {
       Element.update("affichage","afficher");
      }
    } });"></p>
     
     
    	<div id="menu">...</div>
    Je précise que je suis débutant. En quoi ma façon de procéder est-elle incorrecte ? Vu la coloration syntaxique, il y a visiblement des erreurs au niveau de syntaxe. Merci de votre aide.

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    Effectivement, il y a un mélange de quottes et doubles quottes. Essayez ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <p id="affichage"  style="cursor: pointer;" 
    onClick="Effect.toggle('menu', 'blind', { duration: 2.0, afterFinish: function(){
      if(Element.visible('menu')() ) {
       Element.update(\"affichage\",\"masquer\");
      } else {
       Element.update(\"affichage\",\"afficher\");
      }
    } });"></p>
    Veillez toujours bien à ne pas fermer une chaines prématurément. Pour éviter ce mélange de quottes, le mieux reste de sortir la fonction du code HTML :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <p id="affichage"  style="cursor: pointer;" onClick="ma_fonction();"></p>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function ma_fonction()
    {
       Effect.toggle('menu', 'blind', { duration: 2.0, afterFinish: function(){
           if(Element.visible('menu')() ) {
              Element.update("affichage","masquer");
           } else {
              Element.update("affichage","afficher");
           }
       } });
    }
    Bon maintenant ce n'est peut-être pas suffisant car je ne connais pas le framework ni la fonction Element.update.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 402
    Par défaut
    Merci beaucoup pour votre réponse. J'ai suivi votre conseil d'externaliser la fonction et cela marche . J'ai juste supprimé la double parenthèse en trop à la ligne 5 de la fonction. Merci encore.

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

Discussions similaires

  1. [Prototype] Effect toggle et texte changeant
    Par nanou22 dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 14/06/2010, 09h26
  2. [script.aculo.us] Etat par défaut avec un Effect.toggle
    Par robmayol dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 06/07/2009, 11h17
  3. Element zone de travail non visible
    Par kittu dans le forum Flash
    Réponses: 2
    Dernier message: 12/10/2008, 10h53
  4. rendre visible un element
    Par klimero dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2006, 17h37
  5. element visible sur la page
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/09/2005, 17h09

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