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 :

Syntaxe d'une Fonction


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Par défaut Syntaxe d'une Fonction
    Bonjour,
    Je voudrais écrire ce genre de fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <script language="javascript" type="text/javascript">
    function X()
       {
     var  etat=document.getElementById('id dans balise div ').style.display;
       if(etat=="block"){
       function Y () return false;
       }
       else{
       function Y () return true;   }
       }
    </script>
    Est-il possible d'appeler une function dans une autre function ?
    Si oui, quelqu'un pourrait-il me donner la bonne syntaxe ?
    Merci d'avance
    Jojolito

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    Citation Envoyé par jojolito Voir le message
    Est-il possible d'appeler une function dans une autre function ?
    Si oui, quelqu'un pourrait-il me donner la bonne syntaxe ?
    oui tout à fait :
    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
     
    // déclaration de Y()
    function Y()
    {
         // code de la fonction...
     
    }
     
    // déclaration de X()
    function X()
    {
          // code de la fonction...
     
         Y();        // appel de Y
    }

    Une remarque en passant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('id dans balise div ').style.display
    ne retournera rien si la propriété a été déclarée en CSS.

    Si tu as modifié la valeur de cette propriété dans un script javascript alors dans ce cas (et uniquement dans ce cas) style.display retournera la valeur affectée.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Par défaut Syntaxe d'une fonction
    Merci pour votre réponse mais je fais fausse route. Ce n'est pas la méthode qui me permettra de venir à bout du dysfonctionnement que je constate.
    En fait voilà sur quoi je butte :
    J'ai un menu déroulant dont l'une des sous-listes d'une des listes ouvre une pop up et m'assombrit la div de background. Cela se fait bien. Ce qui n'est pas bon c'est qu'une fois la pop up ouverte le fait de passer la souris sur la zone assombrie déclenche le menu déroulant au niveau de la liste concernée par la pop up. Cela me semble normal puisque la div assombrie et la div de la pop up se trouvent entre les balises <li> et </li> de la sous-liste. J'essaie de neutraliser cet effet depuis plusieurs jours et je n'y arrive pas.
    J'ai essayé de cacher le block des sous-listes du menu sous toutes les div de ma page lorsque la pop up était ouverte en modifiant le z-index à l'aide d'une fonction jvs. Du bricolage !
    J'ai essayé de neutraliser la fonction qui déroule le menu lorsque la fonction qui ouvre la pop up était activée. C'était la raison de ma question initiale. Ce n'est pas mieux.
    Je ne vois pas comment faire.
    Voici mes codes JS. Ce sont des codes classiques trouvés dans différents tutos et forums
    Du menu déroulant :
    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
     
    <script language="javascript" type="text/javascript"> 
    function sfHover() {
            var sfEls = document.getElementById("menu").getElementsByTagName("li");
            for (var i=0; i<sfEls.length; i++) {
                    sfEls[i].onmouseover=function() {
                            this.className+=" sfhover";
                    }
                    sfEls[i].onmouseout=function() {
                            this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                    }
            }
    }
    if (window.attachEvent) window.attachEvent("onload", sfHover);
    </script>
    De la pop up :
    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
     
    <script language="javascript" type="text/javascript"> 
    function hideDiv() 
        { 
            if (document.getElementById) { // DOM3 = IE5, NS6 
                document.getElementById('hideshow').style.visibility = 'hidden'; 
            } 
            else { 
                if (document.layers) { // Netscape 4 
                    document.hideshow.visibility = 'hidden'; 
                } 
                else { // IE 4 
                    document.all.hideshow.style.visibility = 'hidden'; 
                } 
            } 
        }
     
        function showDiv() { 
            if (document.getElementById) { // DOM3 = IE5, NS6 
                document.getElementById('hideshow').style.visibility = 'visible'; 
            } 
            else { 
                if (document.layers) { // Netscape 4 
                    document.hideshow.visibility = 'visible'; 
                } 
                else { // IE 4 
                    document.all.hideshow.style.visibility = 'visible'; 
                } 
            } 
        }
    </script>
    La partie du code html de ma page concerné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <ul>
    <li><a href="javascript:showDiv();" >BlaBla</a>								
    <div id="hideshow" style="visibility:hidden;">
    <div id="fade"></div>
    <div class="popup_block">
    		<div class="popup">
    </div>
    </div>
    </li>
    </ul>
    Id = fade est celle que j'assombris.
    Si vous avez une idée ....
    Merci d'avance
    Josélito

  4. #4
    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
    pas sûr d'avoir tout bien compris, mais je me hasarderais à dire qu'il faut tester dans la fonction mouveover si la div est visible,
    - SI OUI on ne fait pas le changement de class
    - SI NON on fait le changement de class
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sfEls[i].onmouseover=function() {
      if( La_div_est_NOT_Visible){
        this.className +=" sfhover";
      }
    }

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Février 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 8
    Par défaut Syntax d'une fonction
    Merci pour votre aide mais en fait il suffisait de sortir la pop up des balises <li></li>. J'ai perdu beaucoup de temps là dessus !
    Josélito

  6. #6
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Sinon tu peux neutraliser temporairement ta fonction tant que la pop-up est active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var yBackup = y;
    y = function(){};
    // Ton traitement, y ne peut plus rien faire.
    // ...
    // Fin de ton traitement, restauration de y :
    y = yBackup;

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

Discussions similaires

  1. problème de syntaxe pour une fonction
    Par gero123 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 27/07/2007, 12h11
  2. erreur syntaxe sur une fonction pow
    Par superyoury dans le forum C
    Réponses: 3
    Dernier message: 10/06/2007, 18h16
  3. Syntaxe d'une fonction
    Par Goupo dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/06/2007, 18h18
  4. [SQLITE][UDF] syntaxe d'une fonction
    Par nannous dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 31/10/2006, 13h56
  5. syntaxe d'une fonction
    Par john491 dans le forum Général Python
    Réponses: 2
    Dernier message: 01/05/2006, 23h44

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