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 :

Utiliser les évenements !


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Par défaut Utiliser les évenements !
    Bonjour,

    Quand l’événement Onmouseover se produit sur un element A, je voudrais changer la couleur de l'element B. Le problème est que le nom de ces éléments m'est fourni par variable. le code ci-dessous ne marche pas. Je ne sais pas comment faire...

    Ca marche quand les variables ne sont pas des tableau mais avec des tableau ca marche pas..

    Merci !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var tab_inputs_A = ['voiture1','voiture2', 'passager1','passager2'];
    var tab_inputs_B = ['div_nb1','div_nb2', 'div_nb3','div_nb4'];
    var elements_A = new Array;
    var elements_B = new Array;
     
    for (i = 0; i < 4; i++) {
     
      elements_A[i]= document.getElementById(tab_inputs_A[i]);
      elements_B[i]= document.getElementById(tab_inputs_B[i]);     
      elements_A[i].onmouseover = function() {
          elements_B[i].style.background="#f333f4";
      };
     
    }

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    pourquoi passer par des tableau ???
    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
    var tab_inputs_A = ['voiture1','voiture2', 'passager1','passager2'];
    var tab_inputs_B = ['div_nb1','div_nb2', 'div_nb3','div_nb4'];
     
    for (i = 0; i < 4; i++) {
      /*
      var div = document.createElement('DIV');
      div.id =  tab_inputs_A[i];
      div.innerText = tab_inputs_A[i];
      document.body.appendChild(div);
     
      var a = document.createElement('DIV');
      a.id =  tab_inputs_B[i];
      a.innerText = tab_inputs_B[i];
      document.body.appendChild(a);
      */
     
      var element_A= document.getElementById(tab_inputs_A[i]);
      var element_B= document.getElementById(tab_inputs_B[i]); 
      element_A.cible = element_B;
      element_A.onclick = function () {
        this.cible.style.background="#f333f4";
        return false;
      };
     
    }
    Il n'y a aucunement besoin de tableau, les variables étant positionnées dans la boucle. Leur portée est limitée à la boucle elle-même.
    Donc lorsque tu définis ta méthode, "onmousseover", la variable "element_b" utilisée, est la variable courante à ce passage dans la boucle. Il n'est donc pas nécessaire de la stocker dans un tableau.

    A+JYT

  4. #4
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Par défaut Merci
    Ok merci à tous.
    Finalement j'ai utilisé une fonction closure parce que ce que je ne vous avais pas dit (pour simplifier la question), c'est que je ne pouvais pas modifier element_A (c'est un objet qui ne m'appartient pas)

    A+

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 11
    Dernier message: 22/12/2003, 21h06
  3. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 19h47
  4. Merci d'utiliser les TAG
    Par Cian dans le forum Etudes
    Réponses: 0
    Dernier message: 07/08/2003, 17h46
  5. Utiliser les frames
    Par laury dans le forum Composants VCL
    Réponses: 5
    Dernier message: 10/05/2003, 10h14

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