Gestion des onBlur et onClick

Gestion des onBlur et onClick - HTML/CSS - Programmation

Marsh Posté le 11-10-2007 à 17:25:18    

Bonjour,
 
J'ai encore un problème de javascript.  
 
J'ai une div principale, sur celle-ci, je gère l'évènement onBlur, l'action executée est de faire disparaitre la div.  
Dans cette div, j'ai un menu, avec des span, dans chaque span, je gère l'évènement onClick pour executer une action particulière.
 
Seulement, lorsque je click sur un des spans, cela execute directement le onBlur, mais pas l'action associée au onClick du span.  
 
Voici un exemple :
 
<div onBlur="display:none">
    <span onClick="faireTraitement1()">Faire Traitement 1</span>
    <span onClick="faireTraitement2()">Faire Traitement 2</span>
</div>
 
 
Comment faire pour executer d'abord le "faireTraitement2() si je clicke sur ce span, et qu'après, il execute le onBlur ?  
 
 
PS : je suis obligé de garder ce onBlur, car si je ne suis pas sur cette div, je souhaite qu'elle disparaisse.
 
Merci d'avance :)

Reply

Marsh Posté le 11-10-2007 à 17:25:18   

Reply

Marsh Posté le 11-10-2007 à 17:28:23    

C'est pas plus simple de faire :
 
faireTraitement()
 
Et lui fait un display:none de la div parent ?

Reply

Marsh Posté le 11-10-2007 à 17:29:34    

Et si je sors de la div sans cliquer... Qui me fera le display:none ?

Reply

Marsh Posté le 11-10-2007 à 17:33:46    

hum hum...

Reply

Marsh Posté le 11-10-2007 à 18:29:16    

J'ai fait un petit test avec onBlur sur une div et chez moi rien ne se passe (la div ne disparait pas)...
En revanche, avec un onMouseOut, j'ai un résultat qui semble être celui que tu attends...


---------------
Fred => http://www.meance.free.fr
Reply

Marsh Posté le 11-10-2007 à 19:46:01    

c'est normal car onblur existe pas pour une div :
 
onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
 
src : http://www.w3schools.com/tags/tag_div.asp

Reply

Marsh Posté le 11-10-2007 à 20:31:51    

Sur ie, le onBlur fonctionne très bien sur une div ;)
 
J'ai besoin d'aide pas sur le fait de savoir si onblur ou onmouseout est mieux (onmouseout ne fonctionne aps sur le même evenement, et n'est pas ce que je recherche, c'est bien un onblur que je veux (lorsqu'on perd le focus).  
 
 
Mon problème ici est d'executer le onClick des span avant le onBlur de la div :)

Reply

Marsh Posté le 11-10-2007 à 20:34:07    

désolé j'ai pas IE pour tester...Mais ton truc sent pas bon, si..
 
Enfin tu fais ce que tu veux.

Reply

Marsh Posté le 11-10-2007 à 21:22:20    

Mais de toute façon, je peux mettre un onMouseOut, cela ne changera rien, c'est ça qui prendra la main sur le onClick du span...

Reply

Marsh Posté le 11-10-2007 à 21:48:34    

Ferais des tests ce soir...te tiens au courant

Reply

Marsh Posté le 11-10-2007 à 21:48:34   

Reply

Marsh Posté le 11-10-2007 à 21:50:09    

Ok merci :)

Reply

Marsh Posté le 12-10-2007 à 03:24:20    

jai fait ça, et jai aucun souci :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3.   <head>
  4.     <title>Footer Vertical Align</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.     <script type="text/javascript" src="js/general.js"></script>
  7.   </head>
  8.   <body>
  9.     <div onmouseout="this.style.display='none';">
  10.       <span onclick="faireTraitement1()">Faire Traitement 1</span>
  11.       <span onclick="faireTraitement2()">Faire Traitement 2</span>
  12.     </div>
  13.   </body>
  14. </html>


 
JS :  
 

Code :
  1. function faireTraitement1() {
  2.     alert("1" );
  3. }
  4. function faireTraitement2() {
  5.     alert("2" );
  6. }


 

Reply

Marsh Posté le 12-10-2007 à 09:15:24    

4bis a écrit :

J'ai besoin d'aide pas sur le fait de savoir si onblur ou onmouseout est mieux (onmouseout ne fonctionne aps sur le même evenement, et n'est pas ce que je recherche, c'est bien un onblur que je veux (lorsqu'on perd le focus).


Juste une précision pour faire mon casse-nouille du vendredi matin: Focus et Blur sont impossibles sur un div :o
Sur un lien ou un input de formulaire oui, sur le reste non. Grosso modo, si je peux arriver sur mon element avec la touche tab c'est bon ( le fait que ça marche sur IE n'est en rien un critère de validité)

Reply

Marsh Posté le 12-10-2007 à 09:40:14    

xtof_83 a écrit :

jai fait ça, et jai aucun souci :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  3.   <head>
  4.     <title>Footer Vertical Align</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  6.     <script type="text/javascript" src="js/general.js"></script>
  7.   </head>
  8.   <body>
  9.     <div onmouseout="this.style.display='none';">
  10.       <span onclick="faireTraitement1()">Faire Traitement 1</span>
  11.       <span onclick="faireTraitement2()">Faire Traitement 2</span>
  12.     </div>
  13.   </body>
  14. </html>


 
JS :  
 

Code :
  1. function faireTraitement1() {
  2.     alert("1" );
  3. }
  4. function faireTraitement2() {
  5.     alert("2" );
  6. }


 


 
Merci, je vais retester avec le onMouseOut pour voir si ca diffère. :)
 
 

anapajari a écrit :


Juste une précision pour faire mon casse-nouille du vendredi matin: Focus et Blur sont impossibles sur un div :o
Sur un lien ou un input de formulaire oui, sur le reste non. Grosso modo, si je peux arriver sur mon element avec la touche tab c'est bon ( le fait que ça marche sur IE n'est en rien un critère de validité)


 
Je n'ai pas dit que c'était valide. Mais vu que mon développement ne concerne QUE internet explorer et n'est QUE compatible avec IE, mettre une div avec le onBlur, si cela fonctionne, cela me convient. De plus je ne souhaite pas avoir le comportement du onMouseOut, mais bien celui du onBlur, et pour l'instant, je n'ai pas trouvé d'autres solutions, mais si tu en as, je suis preneur. ;)
 

Reply

Marsh Posté le 12-10-2007 à 11:14:18    

xtof_83 >> Je viens de tester mais je ne souhaite pas ce comportement. Car vu que ma div est placée à 200px de la souris, dès que je bouge celle ci pour me diriger vers la div qui vient d'être affichée, elle disparait sur le onMouseOut.


Message édité par 4bis le 12-10-2007 à 12:07:35
Reply

Marsh Posté le 12-10-2007 à 17:30:56    

Bon ben aussi si tu postes à moitié ta problématique...
 
Bon envoie tout...et on voit.

Reply

Marsh Posté le 12-10-2007 à 19:49:27    

Euh je l'ai dit dès le début que je ne voulais pas de votre onMouseOut, mais bien du onBlur. :whistle: Mais merci de ton aide ;)
 
Sinon, c'est bon j'ai réussi à trouver en capturant le onBlur sur cet élément en javascript, et en faisant une petite manip :)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed