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 :

Ajouter un évènement mouseover à un div


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut Ajouter un évènement mouseover à un div
    Salut, j'ai une instruction qui fonctionne bien pour l'evennement onclick, donnée par un membre du forum, mais pour le over j'essaie de faire pareil, ça ne marche pas, j'ai oublié une chose ? Bon faut dire que la première est faite sur un div "place" existant, tandis que la seconde est faite sur un div "newDiv" qui a été ajouté en child sur le div "place"

    Fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    				place.appendChild(newDiv);
    				place.addEventListener('click', (e) => {
    					testRect(e.offsetX, e.offsetY);
    				});
    Fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    				place.appendChild(newDiv);
    				newDiv.addEventListener('mouseover', (e) => {
    					testRect(e.offsetX, e.offsetY);
    				});

    En fait, mon but est de pouvoir changer le curseur du div "newDiv" que j'ai ajouté au div "place".
    Le css n'a pas fonctionné.

  2. #2
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    du peu que j'en vois je pense que c'est parce que ta div n'a pas de dimension mais je peux me tromper. Si il s'agit de modifier le curseur au passage sur une div, une simple instruction css suffit, il faudrait voir un peu plus de ton code pour savoir ce qui ne va pas

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    Pardon oui c'est bien un div, mais le cursor pointer je voudrais le mettre sur le div mais aussi sur le code cidessous, qui part du même principe mais avec une image au lieu du div.


    C'est juste que le div ou l'image est ajoutée à la volée par le javascript, donc le css déjà préparé dans un fichier ne marchera peut-etre pas, je cherche à l'ajouter par javascript juste aprés la création du div, j'ai essayé quelques manips en javascript mais cela ne marche pas.


    Voilà le code, mais je pense pas que ça va aider beaucoup plus...

    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
    // Affiche l'icone du camp sur la carte selon sa position ligne,colonne. 
    function getCase(lig,col){
    	let num=carte[lig][col];
    	// Si le numéro est -1, ne fait rien, sinon vérifie à quoi correspond le numéro.
    	if(num>-1){
    		if(num<=999){
    			let camp=TabCamp[num]; // camp.dx et camp.dy sont la coordonnée en cases (pas en pixels).
    //			console.log(camp.nom+" N°"+camp.num+":"+camp.dy+":"+camp.dx);
    			 // Converti numéro de case en position.Puis ajoute un décalage pour centrer l'icone dans la case.
    			ctx2.drawImage(camp.img,(camp.dx*rect.w)+30,(camp.dy*rect.h)+5);
    			ctx4.fillText(camp.nom,(camp.dx*rect.w)+30,(camp.dy*rect.h)+32+5+12); // Affiche le nom du camp.
    			// Ajoute l'icone du camp au DOM de l'écran.
    			let place=document.getElementById('ecran');
    			place.appendChild(camp.img);
    			camp.img.style.position="absolute";
    			camp.img.style.left=(camp.dx*rect.w)+30+"px";
    			camp.img.style.top=(camp.dy*rect.h)+5+"px";
    			// Ajoute un evennement click à l'écran et lance le test position du click sur es icones.
    			place.addEventListener('click', (e) => {
    				testRect(e.offsetX, e.offsetY);
    			});
     
    		}else{
    			num=num-1000;
    			let mine=TabMine[num];
     
    		}
     
    	}
     
    }
    C'est sur camp.img que je voudrais ajouter le cursor "pointer".

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Bonjour,
    même si je n'ai pas vraiment tout compris ...
    mais avec une image au lieu du div.
    ici sur est sur le conteneur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    place.addEventListener('click', (e) => {
      testRect(e.offsetX, e.offsetY);
    });
    ici sur est sur l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    camp.img.addEventListener('click', (e) => {
      testRect(e.offsetX, e.offsetY);
    });

  5. #5
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    Ah oui, tu as raison, j'enlève celui du camp, sur l'image camp.img je souhaite y mettre non pas un click mais un cursor pointer quand on la survole.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    !?! pourquoi ne pas passer par la pseudo-classe :hover en CSS.

    !?! pourquoi ne pas affecter directement la propriété cursor:, également en CSS le curseur n'apparaissant qu'au survol de l'élément, c'est le comportement normal des navigateurs.

  7. #7
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    Parce que cette image est dans un objet nommé camp.
    c'est camp.img.

    Alors je me disais que le css ne fonctionnerait pas sur une image dans un objet qui est créé dynamiquement.

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 048
    Points : 44 562
    Points
    44 562
    Par défaut
    Quelque soit la provenance des données, si un élément est ajouté au DOM alors le CSS, lui étant associé, lui sera affecté et pris en compte par le moteur de rendu.

  9. #9
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2021
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Décembre 2021
    Messages : 81
    Points : 63
    Points
    63
    Par défaut
    Ah super, merci beaucoup !

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

Discussions similaires

  1. Ajout événement onclick à objet DIV
    Par sbernard dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/10/2006, 15h13
  2. Ajouter un événement à une div
    Par seb-oulba dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/09/2006, 19h39
  3. [débutant]Ajout d'événement
    Par jsatla dans le forum MFC
    Réponses: 4
    Dernier message: 04/11/2005, 12h19
  4. Ajout d'événement
    Par olivierlsf dans le forum Composants VCL
    Réponses: 1
    Dernier message: 30/09/2005, 17h16
  5. Ajout d'événement
    Par ArkAng3 dans le forum C++Builder
    Réponses: 4
    Dernier message: 04/08/2005, 15h57

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