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 :

Simplification de code sur onmouseover/out


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Points : 51
    Points
    51
    Par défaut Simplification de code sur onmouseover/out
    Bonjour

    Je veux appliquer onmouseover / out à chacun des éléments de <li>. Je ne peux utiliser qu'une seule fois l'id="a1", donc ce code ne fonctionne que pour le premier élément. Mettre l'id dans le <div> comme <div id="a1"> ne fonctionne pas. Merci pour votre aide. Romeo

    Code html : 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
    <div>
            <ul>
                <li> <a id="a1" hef="#">Bienvenue</a> </li>
                <li> <a hef="#">Contact</a> </li>
                <li> <a hef="#">Info</a> </li>
           </ul>
    </div>
     
        <script type="text/javascript">
            var a = document.getElementById("a1");
            a.onmouseover = txtover
            a.onmouseout = txtout
     
            function txtover() { a.style.color = "red"; }
            function txtout() { a.style.color = "green"; }
        </script>

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975

  3. #3
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Points : 51
    Points
    51
    Par défaut
    Salut
    Merci pour ta réponse. j'ai essayé ceci mais ça ne marche pas:

    Code html : 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
    <body style="background-color:snow">
        <div>
            <ul>
                <li> <a class="menu" href="#" > Welkom</a> </li>
                <li> <a class="menu" href="#">Onze school </a> </li>
                <li> <a class="menu" href="#"> Onze talenten</a> </li>
                <li> <a class="menu" href="#"> Info</a> </li>
        </ul>
        </div>
     
        <script type="text/javascript">
            const a1 = document.getElementsByClassName("menu");
            for (i = 0; i < 4; i++) {
                a1[i].onmouseover = txtover1
                a1[i].onmouseout = txtout1
            }
     
            function txtover1() { a1[i].style.color = "red"; }
            function txtout1() { a1[i].style.color = "white"; }
           
        </script>
    </body>

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    pour montrer du code sur ce forum, vous pouvez utiliser le bouton "#" juste au dessus pour le mettre en forme.

    pour votre souci de javascript, regardez dans la console de développement et vous verrez des erreurs javascript.

  5. #5
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Points : 51
    Points
    51
    Par défaut
    Merci pour la préponse. je vois en effet la faute qui ne sait pas lire la property 'style'. Mais je ne vois pas comment la corriger.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    le message indique surtout que a1[i] n'existe pas dans les 2 fonctions. essayez en mettant this à la place.

    je pense que vous pouvez faire ce changement de couleur en css en utilisant ":hover" et sans javascript :
    https://developer.mozilla.org/fr/docs/Web/CSS/:hover
    n'hésitez pas à ouvrir une nouvelle discussion dans le forum css si vous voulez de l'aide pour essayer cela.

  7. #7
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Points : 51
    Points
    51
    Par défaut
    Ce code ne donne aucune faute, mais ne marche toujours pas (rien ne se passe). ??
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <body>
            <ul>
                <li> <a class="a1" href="#"> Bienvenue</a> </li>
                <li> <a class="a1" href="#">Contact </a> </li>
                <li> <a class="a1" href="#"> Info</a> </li>
            </ul>
     
        <script type="text/javascript">
            var a = document.getElementsByClassName("a1");
            a.onmouseover = txtover
            a.onmouseout = txtout
            function txtout() { a.style.color = "white"; }
            function txtover() { a.style.color = "red"; }
        </script>
    </body>

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    à partir de votre code de 12 h 06, j'ai juste mis "this" dans les fonctions :
    Code html : 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
    <body style="background-color:snow">
        <div>
            <ul>
                <li> <a class="menu" href="#" > Welkom</a> </li>
                <li> <a class="menu" href="#">Onze school </a> </li>
                <li> <a class="menu" href="#"> Onze talenten</a> </li>
                <li> <a class="menu" href="#"> Info</a> </li>
        </ul>
        </div>
     
        <script type="text/javascript">
            const a1 = document.getElementsByClassName("menu");
            for (i = 0; i < 4; i++) {
                a1[i].onmouseover = txtover1
                a1[i].onmouseout = txtout1
            }
     
            function txtover1() { this.style.color = "red"; }
            function txtout1() { this.style.color = "white"; }
           
        </script>
    </body>

  9. #9
    Membre du Club
    Homme Profil pro
    Analyse système
    Inscrit en
    Février 2021
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyse système
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2021
    Messages : 77
    Points : 51
    Points
    51
    Par défaut
    Merci. Votre version marche. Ma dernière version ne marche pas car elle ne différencie pas entre les elements <li>, je crois. Tous sont 'a' sans distinction.

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 058
    Points : 44 588
    Points
    44 588
    Par défaut
    Bonjour,
    Citation Envoyé par mathieu
    je pense que vous pouvez faire ce changement de couleur en css en utilisant ":hover" et sans javascript :
    https://developer.mozilla.org/fr/docs/Web/CSS/:hover
    c'est à mon sens la méthode la plus « efficace » en ce qui concerne ton besoin.

    Attention également aux effets de bord avec mouseover/out, peut-être préférer mouseenter/leave ou mieux aujourd’hui pointerenter/leave.

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

Discussions similaires

  1. Question sur simplification de code (lodash?)
    Par Paul75 dans le forum Angular
    Réponses: 0
    Dernier message: 15/04/2020, 19h20
  2. Réponses: 2
    Dernier message: 19/11/2015, 15h55
  3. Simplification de code sur double requette sql pour trier les colonnes.
    Par vandman dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 13/03/2015, 13h43
  4. Onmouseover/out sur div avec IE8
    Par Kahlyv dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 26/11/2009, 17h21
  5. Réponses: 4
    Dernier message: 20/09/2009, 11h12

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