Bonjour,
Savez-vous comment on peut faire pour obtenir l'équivalent de l'évènement onblur avec une DIV ?
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2
3 <div type="text" onblur="alert('blur');" > test </div>







			
			
			
			 
			
				
Bonjour,
Savez-vous comment on peut faire pour obtenir l'équivalent de l'évènement onblur avec une DIV ?
Merci de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2
3 <div type="text" onblur="alert('blur');" > test </div>
Bonsoir,
difficile de répondre une DIV n'ayant pas prise de focus, essaies avec mouseout.
Les joies du CSS | Réponses sur forum | Simple comme JS | Essais libres autour de l'API G$$gle Maps
✂ ---------------------------------------------
developpez.net c'est aussi :
✔ Les meilleurs cours et tutoriels pour apprendre le CSS
✔ Les meilleurs cours et tutoriels pour apprendre le (X)HTML
✔ Les meilleurs cours et tutoriels pour apprendre le JavaScript
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 var monDiv = document.getElementById('id_de_mon_div'); function my_blur(){ // ... } var monDivIsFocused = false; monDiv.onclick = function(){monDivIsFocused=true;}; // utiliser addEventListenner et attachEvent au lieu de "onclick" si le code est important et que d'autres événements "onclick" peuvent s'attacher au body document.body.onclick = function(e){ var evt = window.event || e; var target = evt.target || evt.srcElement; var clickOnDiv = false; while( target && !clickOnDiv){ if( target.id == monDiv) clickOnDiv = true; target = target.parentNode; } if(clickOnDiv && monDivIsFocused){ monDivIsFocused = false; my_blur(); } return true; };







			
			
			
			 
			
				
Merci pour ce bout de code interressant, j'ai donc testé mais sans résultat:
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 <html> <head> <script> var monDiv = document.getElementById('mondiv'); function my_blur(){ alert('onblur'); } var monDivIsFocused = false; monDiv.onclick = function(){monDivIsFocused=true;}; // utiliser addEventListenner et attachEvent au lieu de "onclick" si le code est important et que d'autres événements "onclick" peuvent s'attacher au body document.body.onclick = function(e){ var evt = window.event || e; var target = evt.target || evt.srcElement; var clickOnDiv = false; while( target && !clickOnDiv){ if( target.id == monDiv) clickOnDiv = true; target = target.parentNode; } if(clickOnDiv && monDivIsFocused){ monDivIsFocused = false; my_blur(); } return true; }; </script> </head> <body> <div id="mondiv" style="border: 1px solid red"> test </div> </body> </html>
testé mais sans résultat
A tout hasard, tu as mis quoi dans la fonction my_blur() ?
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 JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum
La FAQ JavaScript – Les cours JavaScript
Touche F12 = la console → l’outil indispensable pour développer en JavaScript !
A remplacer par
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
 1
2 if( target.id == monDiv)
ou bienif(target.id == "id_de_mon_div") // tu fais .id donc tu dois comparer des strings
Sinon ça serait de mieux de le faire en jquery, un peu près la même logique, mais gérer les évènements par le model évènementiel jquery pour éviter des problèmes sur d'autre browser, et aussi réduire le codeif(target === monDiv) // l'objet est le même
oups, pour le premier j'avais effectivement d'abord proposé une version ou on comparait les id et puis j'ai édité pour remplacer par l'objet directement (en oubliant de modifier un des 2 coté)
pour jquery, ne sachant pas s'il utilisait la librairie j'ai voulu lui proposer une solution en js pur.
edit: "pour éviter des problèmes sur d'autre browser", je pense que le code que j'ai proposé est compatible avec la plupart des browsers.
Partager