Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1280 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Appliquer un onmouseout sur un conteneur ET ses éléments

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Appliquer un onmouseout sur un conteneur ET ses éléments

n°1588641
theredled
● REC
Posté le 19-07-2007 à 10:54:42  profilanswer
 

Hello
 
J'ai un truc du genre ça :

Code :
  1. <div>
  2. <h1>bla</h1>
  3. <ul>
  4.  <li>yeah</li>
  5.  <li>yo</li>
  6. </ul>
  7. </div>


 
Je veux mettre un onmouseout sur tout ce bloc.
Mais quand je le mets sur le ul ou sur la div, il n'est pas appliqué aux enfants. Autrement dit, dès que je passe sur un <li>, le "onmouseout" est déclenché [:petrus75] Il n'est donc appliqué que sur la partie du conteneur ne comportant pas d'éléments enfants. Moi je veux qu'il soit valable sur tout le <ul> ou la div
 
Pourquoi ? comment faire ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
mood
Publicité
Posté le 19-07-2007 à 10:54:42  profilanswer
 

n°1588647
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 11:03:22  profilanswer
 

ça le fait par défaut [:dawak].
Tu peux montrer ton code?

 

Sinon voila une petit exemple:

Code :
  1. <html>
  2. <head>
  3.   <script type="text/javascript">
  4.    window.onload= function (){
  5.      document.getElementById('A').onmouseover = function(){
  6.       this.style.backgroundColor = 'purple';
  7.      }
  8.      document.getElementById('A').onmouseout = function(){
  9.       this.style.backgroundColor = 'red';
  10.      }
  11.    }
  12.   </script>
  13. </head>
  14. <body>
  15.    <div id="A" style="background-color: red">
  16.     <div>
  17.     <h1>bla</h1>
  18.     <ul>
  19.      <li>yeah</li>
  20.      <li>yo</li>
  21.     </ul>
  22.     </div>
  23.    </div>
  24. </body>
  25. </html>


Message cité 1 fois
Message édité par anapajari le 19-07-2007 à 11:03:40
n°1588650
theredled
● REC
Posté le 19-07-2007 à 11:13:54  profilanswer
 

anapajari a écrit :

ça le fait par défaut [:dawak].
Tu peux montrer ton code?

 

Sinon voila une petit exemple:

Code :
  1. <html>
  2. <head>
  3.   <script type="text/javascript">
  4.    window.onload= function (){
  5.      document.getElementById('A').onmouseover = function(){
  6.       this.style.backgroundColor = 'purple';
  7.      }
  8.      document.getElementById('A').onmouseout = function(){
  9.       this.style.backgroundColor = 'red';
  10.      }
  11.    }
  12.   </script>
  13. </head>
  14. <body>
  15.    <div id="A" style="background-color: red">
  16.     <div>
  17.     <h1>bla</h1>
  18.     <ul>
  19.      <li>yeah</li>
  20.      <li>yo</li>
  21.     </ul>
  22.     </div>
  23.    </div>
  24. </body>
  25. </html>




Exact ça marche comme ça ; maintenant rajoute un alert('haha'); dans ton onmouseout, et tu verras qu'il s'active quand tu passes sur les <li> et sur le <h1> :/


Message édité par theredled le 19-07-2007 à 11:15:50

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588656
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 11:21:31  profilanswer
 

[:cerveau pingouino], c'est le alert qui déclenche le mouseout ....
 
nouvel exemple:

Code :
  1. <html>
  2. <head>
  3.   <script type="text/javascript">
  4.    window.onload= function (){
  5.      document.getElementById('A').onmouseover = function(){
  6.       this.style.backgroundColor = 'purple';
  7.      }
  8.      document.getElementById('A').onmouseout = function(){
  9.       this.style.backgroundColor = 'red';
  10.      }
  11.      document.getElementById('B').onmouseover = function(){
  12.        this.style.backgroundColor = 'green';
  13.      }
  14.      document.getElementById('B').onmouseout = function(){
  15.        this.style.backgroundColor = 'yellow';
  16.      }
  17.    }
  18.   </script>
  19. </head>
  20. <body>
  21.    <div id="A" style="background-color: red">
  22.     <div>
  23.     <h1 id="B">bla</h1>
  24.     <ul>
  25.      <li>yeah</li>
  26.      <li>yo</li>
  27.     </ul>
  28.     </div>
  29.    </div>
  30. </body>
  31. </html>

n°1588687
theredled
● REC
Posté le 19-07-2007 à 11:43:29  profilanswer
 

anapajari a écrit :

[:cerveau pingouino], c'est le alert qui déclenche le mouseout ....

 

nouvel exemple:

Code :
  1. <html>
  2. <head>
  3.   <script type="text/javascript">
  4.    window.onload= function (){
  5.      document.getElementById('A').onmouseover = function(){
  6.       this.style.backgroundColor = 'purple';
  7.      }
  8.      document.getElementById('A').onmouseout = function(){
  9.       this.style.backgroundColor = 'red';
  10.      }
  11.      document.getElementById('B').onmouseover = function(){
  12.        this.style.backgroundColor = 'green';
  13.      }
  14.      document.getElementById('B').onmouseout = function(){
  15.        this.style.backgroundColor = 'yellow';
  16.      }
  17.    }
  18.   </script>
  19. </head>
  20. <body>
  21.    <div id="A" style="background-color: red">
  22.     <div>
  23.     <h1 id="B">bla</h1>
  24.     <ul>
  25.      <li>yeah</li>
  26.      <li>yo</li>
  27.     </ul>
  28.     </div>
  29.    </div>
  30. </body>
  31. </html>



Merci j'avais compris [:dawa]

 

Maintenant avec le alert sur div#A : http://test.bubblebeat.com/bid/onmouse2.htm


Message édité par theredled le 19-07-2007 à 11:44:05

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588692
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 11:46:20  profilanswer
 

Mais te sers pas d'un alert [:w3c compliant] ...
je te dis que c'est ça qui fait déclencher l'évenement mouseout...
A la place fais un document.write si tu tiens vraiment à afficher quelque chose

Message cité 1 fois
Message édité par anapajari le 19-07-2007 à 11:46:36
n°1588707
theredled
● REC
Posté le 19-07-2007 à 11:53:24  profilanswer
 

anapajari a écrit :

Mais te sers pas d'un alert [:w3c compliant] ...  
je te dis que c'est ça qui fait déclencher l'évenement mouseout...
A la place fais un document.write si tu tiens vraiment à afficher quelque chose


Si t'insistes  [:airforceone]  
http://test.bubblebeat.com/bid/onmouse2.htm
Même chose [:airforceone] t'as plein de onmouseout déclenché à l'intérieur de "A".


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588722
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 12:03:04  profilanswer
 

mais c'est normal !!!!  
et là je me dis qu'on se comprend pas depuis le début, je dois être over pas clair :o  
Donc de la lecture bien faite:
http://www.quirksmode.org/js/events_mouse.html
et la partie qui t'interesse sur le out/over te renverra également sur:
http://www.quirksmode.org/js/events_order.html

n°1588810
theredled
● REC
Posté le 19-07-2007 à 14:36:42  profilanswer
 

Je comprends à petit peu près, je suis en train de relire, mais du coup la solution ce serait quoi, si je ne veux faire un alert qu'à la sortie du conteneur ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588819
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 14:59:18  profilanswer
 

c'est marqué dans les liens :o ( cross browsers script)

mood
Publicité
Posté le 19-07-2007 à 14:59:18  profilanswer
 

n°1588831
theredled
● REC
Posté le 19-07-2007 à 15:14:54  profilanswer
 

Bubbling, capturing, je capte rien, fin si mais je vois pas le rapport avec mon pb [:totoz]

 

Dans les cross-browser scripts, ils me disent comment savoir d'ou je viens et ou je vais, mais ça je m'en fout dans mon cas [:totoz]


Message édité par theredled le 19-07-2007 à 15:18:09

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588833
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 15:16:52  profilanswer
 

C'est ce morceau là qui t'interesse:

Citation :

So if you want to know where the mouse comes from in case of mouseover, do:


 
Grosso Modo tu vas t'amuser à tester si l'element sur lequel le "out" se produit à pour parentNode ton div.

n°1588845
theredled
● REC
Posté le 19-07-2007 à 15:23:17  profilanswer
 

Je suis ptet bête :(, mais ton quote parle de mouseover, et ton explication de out [:sisicaivrai]

 

edit : a moins que ce qui marche pour le over marche pour le out [:transparency]


Message édité par theredled le 19-07-2007 à 15:24:19

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588850
theredled
● REC
Posté le 19-07-2007 à 15:27:04  profilanswer
 

edit2 : mais dans ce cas-là autant utiliser target/srcElement nan :??:
bon là c'est ce que j'essaye et ça marche pas, le target/srcElement est toujours le gros conteneur, mais bon...

 

Enfin je comprends tjrs pas bien la source du pb...


Message édité par theredled le 19-07-2007 à 15:29:49

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588861
theredled
● REC
Posté le 19-07-2007 à 15:31:47  profilanswer
 

Ou alors tu veux dire :

 

dans le onmouseout, je regarde si l'objet pour lequel je "quitte" le conteneur est ou pas un enfant du conteneur  c'est ça [:opus dei]

 

edit : mais c'est super lourd et chiant ça [:le kneu]


Message édité par theredled le 19-07-2007 à 15:33:04

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588890
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 15:56:52  profilanswer
 

Bon on reprends calmement, et tu m'arrêtes quand je me trompe :)

 

ta problèmatique n'est pas d'avoir le même handler de mouseover sur un noeud et ses fils mais que le mouseover sur un fils du noeud ne déclenche mas le onmouseout du noeud père. Do we agree?

 

Du coup oui, c'est chiant et lourd à faire :o


Message édité par anapajari le 19-07-2007 à 15:57:07
n°1588902
theredled
● REC
Posté le 19-07-2007 à 16:07:40  profilanswer
 

Yep :o

 

Mais c'est pourtant super basique :(

 

Tout ça pour un micro-détail graphique [:dawa]

 

La je galère pour voir si l'un des parents est le conteneur...

 
Code :
  1. bytefx.$event(conteneur, 'onmouseout', function(e){
  2.         if (!e) var e = window.event;
  3.         var relTarg = e.relatedTarget || e.toElement;
  4.         var evTarg = e.target || e.srcElement; //menu_styles.ev_conteneur; //
  5.         alert(evTarg.getAttribute('id')+' - '+evTarg.nodeName);
  6.         
  7.         pere = relTarg;
  8.         isChildOfTheLord = false;
  9.         for(pere = relTarg; pere!=null; pere = pere.parentNode)
  10.             if (pere==evTarg) {
  11.                 isChildOfTheLord = true;
  12.                 break;
  13.             }
  14.         
  15.         if (isChildOfTheLord) alert('found'); else alert('not found');
  16.                     
  17.         if (!isChildOfTheLord) {
  18.                        alert('mouseout !!!!!!');
  19.             menu_styles.open_row(-1, true);
  20.         }
  21.     } ) ;


Ca marche 1,3x sur 2 :(
(ya tjrs trop de mouseouts quoi)


Message édité par theredled le 19-07-2007 à 16:08:05

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588921
theredled
● REC
Posté le 19-07-2007 à 16:24:30  profilanswer
 

J4AI REUSSI SA M7RRRRREEE µµµ
 
pb interne a ma classe + faute de frappe.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588923
theredled
● REC
Posté le 19-07-2007 à 16:25:21  profilanswer
 

MERCI anapajari [:simchevelu]


Message édité par theredled le 19-07-2007 à 16:26:14

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1588953
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-07-2007 à 16:55:10  profilanswer
 

\o/ c'est la fête...  
On va dire que tu t'en es bien sorti tout seul parce qu'à la relecture de mes posts, on peut pas dire que la limpidité était de mon coté ;)

n°1588984
theredled
● REC
Posté le 19-07-2007 à 18:07:55  profilanswer
 

Spa faux :D
 
Cela dit j'ai un bug sur les input [:fing fang fung] "Permission refusée d'obtenir la propriété HTMLDivElement.parentNode"... Normalement en JS du moment qu'un objet existe, n'importe quelle propriété retourne qqch (null si elle n'existe pas) non ?
 
La c'est sur que l'objet existe, je fais une verif...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Appliquer un onmouseout sur un conteneur ET ses éléments

 

Sujets relatifs
Elements hérités dans une listeTri de tableau sur la fréquence des éléments
Personnaliser les elements d'une comboboxliste simple avec 2 pointeurs sur le premier et le dernier elements
fonction recherche de plusieurs élémentsIntégrer une animation flash à des éléments html
meilleur conteneur niveau temps d'accès[résolu]Java:Appliquer une methode héritée sur un objet
récupérer les éléments d'un sortable dans PHPSélectionner des éléments au sein d'une frame
Plus de sujets relatifs à : Appliquer un onmouseout sur un conteneur ET ses éléments


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR