Bonjour,
voici un extrait de ma page jsp
Quand je clique sur l'un des 4 éléments suivants :
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 <body onclick="f1();"> <img id="image" name="image" onclick="f2()" src="..."/> <div id="pagenav_menu" " onclick="f3()"> <table> <tbody> <tr> <td>Aller à la page...</td> </tr> <tr> <td> <form id="pagenav_form" action="..." method="get" onsubmit="return gotopage()" name="pagenav_form"> <input id="pagenav_itxt" type="text" name="pagenav_itxt"/> <input id="pagenav_ibtn" class="button" type="button" value="Go"/> </form> </td> </tr> </tbody> </table> </div> </body>
l'évènement onclick est propagé vers l'élément body et la fonction f1() est appelée. Or je voudrais stopper la propagation de l'évènement onclick au niveau des 2 éléments suivants : <img> et <div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <img id="image" name="image" onclick="f2()" src="..."/> <div id="pagenav_menu" " name="pagenav_menu" onclick="f3()"> <input id="pagenav_itxt" type="text" name="pagenav_itxt"/> <input id="pagenav_ibtn" class="button" type="button" value="Go"/>
J'ai d'abord essayé quelque chose du type
mais le programme ne passe même pas dans cette fonction. Ca ne marche pas. Y a t-il une erreur ? (c'est ma première question)
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 document.getElementById('pagenav_menu').onclick=function() { var e = arguments[0]; if (!e) e = window.event; if (e.cancelBubble) e.cancelBubble = true; else e.stopPropagation(); } ou document.pagenav_menu.onclick=function() { var e = arguments[0]; if (!e) e = window.event; if (e.cancelBubble) e.cancelBubble = true; else e.stopPropagation(); }
J'ai alors essayé la chose suivante :
Là le programme passe dans la fonction f3() mais il ne reconnait pas la variable e (évènement) qui est "undefined" et il ne se passe rien et l'évènement est quand même propagé. Le problème est que je suis obligé de gérer différemment la propagation suivant que je suis sous IE ou un autre browser.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function f3(){ var e = arguments[0]; if (!e) e = window.event; if (e.cancelBubble) e.cancelBubble = true; else e.stopPropagation(); }
Est-ce que quelqu'un peut me venir en aide ? Merci
Partager