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 :

[DOM] Gérer l'événement onMouseOver sur une image créée avec DOM


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut [DOM] Gérer l'événement onMouseOver sur une image créée avec DOM
    Bonjour,
    Voila, j'ai crée un tableau grace a des boucles, et dans chaque cellules, j'y insère une image. Je voudrais que lorsqu'on survole une image, un texte s'affiche dans le fieldset que j'ai ajouté juste en dessous de mon tableau. Je ne sais pas du tout comment m'y prendre, j'ai testé plusieurs solutions, mais sans succès...

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    function afficheTableau()
    {
    	//On récupère une référence vers l'élément body
    	var body = document.getElementsByTagName("body")[0];
     
    	/******************************************
    		Création du tableau 
    	******************************************/
     
    	// création de l'élément <table>
    	var monTableau= document.createElement("table");
     
     
    	// création des cellules 
    	for(var i=1; i<=8; i++)  //Boucle qui va créer 8 lignes
    	{
    		// création d'un élément <tr>
    		var ligne = document.createElement("tr");		
     
    		for (var j=1; j<=8; j++)	//Boucle qui va créer 8 colonnes pour chaque ligne
    		{
    			// création d'un élément <td>
    			var colonne = document.createElement("td");	
     
    			//On insère les images dans les cellules du tableau (seulement pour les lignes 1, 2)
    			var pion = document.createElement("img");
     
    			if (i==1)	//Ligne 1
    			{
    				if (j==1 || j==8)	//Pour les cellules 1 et 8 de la ligne 1
    				{
    					pion.setAttribute("src", "images/image1.png");
    					pion.setAttribute("alt", i + "," + j);
    				}
    				if (j==2 || j==7)	//Pour les cellules 2 et 7 de la ligne 1
    				{
    					pion.setAttribute("src", "images/image2.png");
    					pion.setAttribute("alt", i + "," + j);
    				}
    				if (j==3 || j== 6)	//Pour les cellules 3 et 6 de la ligne 1
    				{
    					pion.setAttribute("src", "images/image3.png");
    					pion.setAttribute("alt", i + "," + j);
    				}
    				if (j==4)	//Pour la cellule 4 de la ligne 1
    				{
    					pion.setAttribute("src", "images/image4.png");
    					pion.setAttribute("alt", i + "," + j);
    				}
    				if (j==5)	//Pour la cellule 5 de la ligne 1
    				{
    					pion.setAttribute("src", "images/image5.png");  
    					pion.setAttribute("alt", i + "," + j);
    				}
    			}
    			if (i==2)	//Ligne 2
    			{
    				pion.setAttribute("src", "images/image6.png");  
    				pion.setAttribute("alt", i + "," + j);
    			}
     
                            pion.className="pion";
    			colonne.appendChild(pion);
     
    			// ajoute la cellule <td> à la ligne <tr>
    			ligne.appendChild(colonne);
    		}	//Fin de la boucle
     
    		// ajoute la ligne <tr> à l'élément <table>
    		monTableau.appendChild(ligne);
     
    	}	//Fin de la boucle
     
    	// ajoute <table> à l'élément <body>
    	body.appendChild(monTableau);	
     
     
    	/******************************************
    		Création du Formulaire => Filedset
    	******************************************/
    	// création de l'élément <form>
    	var monForm = document.createElement("form");  
    	// création de l'élément fieldset
    	var monFieldset = document.createElement("fieldset");  
    	// création de l'élément legend
    	var maLegend = document.createElement("legend");  
    	// création d'un noeud texte
    	var texte = document.createTextNode(" Vous avez survolé ");  
    	// ajoute le nœud texte créé à l'élément <legend>
    	maLegend.appendChild(texte);
    	// ajoute la legend créé à l'élément <fildset>
    	monFieldset.appendChild(maLegend);
     
    	var texte2=document.createTextNode("Rien pour l'instant..."); 	
    	// ajoute le nœud texte créé à la cellule <td>
    	monFieldset.appendChild(texte2);	
     
    	monFieldset.id = "fieldset";
     
     
    	// ajoute le fieldset créé à l'élément <form>
    	monForm.appendChild(monFieldset);  
    	// ajoute <form> à l'élément body
    	body.appendChild(monForm);  
     
    }
    Voila, je sais pas si j'ai été assez claire.

    Je vous remercie pour votre aide
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    la solution se trouve dans la faq

    http://javascript.developpez.com/faq...lick.dynamique
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut
    Merci bcp, décidément je ne suis pas douée en recherche!!
    Encore merci!!
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  4. #4
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut
    Euh désolée, mais j'ai encore une question, sui va surement te paraitre bete mais bon

    j'ai ma variable texte2 qui contient du texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var texte2=document.createTextNode("La tour de couleur NOIR");
    Comment puis je faire pour reprendre cette variable la et lui affecter un autre texte, en écrasant le texte précédent.

    (comme tu as pu le remarquer, je suis novice en javascript, je débute...)
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    passse plutot par l' innerHTML pout attribuer le contenu ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    je te conseille aussi de remplacer cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pion.setAttribute("src", "images/image2.png");
    .

    par celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pion.src= "images/image2.png";
    pour tous les attributs ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut
    Ok, je te remercie!

    Par contre, le innerHTML ne fonctionne pas pour la "legende" de mon fieldset. Est-ce normal?? (ca n'affiche pas le texte)
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Non ce n'est pas normal ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <form>
    <fieldset>
    <legend id='leg'>coucou</legend>
    </form>
    <script type='text/javascript'>
    document.getElementById('leg').innerHTML='hello'
    </script>
     
     
    </body>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut
    Euh voila ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var monForm = document.createElement("form");  
    var monFieldset = document.createElement("fieldset");  
    var maLegend = document.createElement("legend"); 
    maLegend.id="legend";
     
    document.getElementById('legend').innerHTML = " Vous avez sélectionné ";
     
    monFieldset.appendChild(maLegend);
     
    monForm.appendChild(monFieldset);  
    body.appendChild(monForm);
    Peut tu me dire ou est le probleme stp?

    Merci
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    le problème est tout simple et très logique ...



    d'abord tu instancie ton objet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var maLegend = document.createElement("legend"); 
    maLegend.id="legend";
    et juste après tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('legend').innerHTML = " Vous avez sélectionné ";
    mais à ce moment là tu ne l'as pas encore appendé au body ...
    donc il ne fait pas partie du document ....

    tu as deux possibilités, soit tu l'appendes d'abord, et ensuite le reste de ton code sera bon.
    soit plus simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var maLegend = document.createElement("legend"); 
    maLegend.id="legend";
    maLegen.innerHTML=" Vous avez sélectionné ";
    et seulement après tu l'appendes...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre habitué Avatar de sab_etudianteBTS
    Inscrit en
    Juin 2006
    Messages
    211
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 211
    Points : 173
    Points
    173
    Par défaut
    Ok, j'ai compris et ca fonctionne!!
    Je te remercie d'avoir pris de ton temps pour m'aider, c'est vraiment gentil de ta part!
    Je vaux 5 677 200 € sur HumainAVendre.com, et vous ? http://www.humainavendre.com

    Sab

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

Discussions similaires

  1. Comment connecte wifi usb sur une VM créée avec Lili USB creator
    Par Chris@Xerox dans le forum Virtualisation
    Réponses: 12
    Dernier message: 20/10/2017, 11h47
  2. Réponses: 6
    Dernier message: 15/11/2007, 12h31
  3. [Avertis]Problème Infobulle/Popup Onmouseover sur une image
    Par Yanos dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 04/05/2006, 14h10
  4. Centrer un texte sur une image créée dynamiquement
    Par rigolman dans le forum Langage
    Réponses: 7
    Dernier message: 11/10/2005, 17h22

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