Bonjour,
je cherches à fabriquer en js une div qui me servira de menu sur un clic droit.
Mon point de départ est un fichier xml.
Situation de départ :
Dans mon fichier HTMl j'ai une balise div :
Lorsque j'appuie sur un bouton, je vais chercher un fichier xml du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <div class="skin1" oncontextmenu="return false;" id="menuContext" onmouseout="hidemenu"></div>
Je veux insérer dans ma div menuContext, une série de div+span pour chaque motif d'absence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <data> <MOTIF_ABSENCE id_ma="1" code_ma="CP" lib_ma="Congés payés"/> <MOTIF_ABSENCE id_ma="2" code_ma="DEJ" lib_ma="Pause déjeuner"/> </data>
Voici ce que j'ai fait actuellement :
Ma div semble bien générée puisque sur un clic droit elle s'affiche. Seulement, lorsque je passe sur un span, la fonction highlight n'est pas lancée.
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
41
42
43
44
45
46
47 function ConstruireDivAbsence(xml) { var nodeList; var node; var i; var divContext; divContext = document.getElementById('menuContext'); // Création premier élément var div = document.createElement("div"); div.id="---ABS"; div.className="menuitems"; div.onclick="remplir(this.id)"; div.onmouseover="highlight()"; div.onmouseout="lowlight()"; var span = document.createElement("span"); span.className="menuspan"; span.onmouseover="highlight()"; span.onmouseout="lowlight()"; span.innerHTML=" "; div.appendChild(span); divContext.appendChild(div); nodeList = xml.getElementsByTagName("MOTIF_ABSENCE"); for (i=0;i<nodeList.length;i++) { node = nodeList(i); var div = document.createElement("div"); div.id=node.getAttribute("code_ma"); div.className="menuitems"; div.onclick="remplir(this.id)"; div.onmouseover="highlight()"; div.onmouseout="lowlight()"; var span = document.createElement("span"); span.className="menuspan"; span.onmouseover="highlight()"; span.onmouseout="lowlight()"; span.innerHTML=node.getAttribute("code_ma"); div.appendChild(span); divContext.appendChild(div); } }
Je ne comprends pas pourquoi
Auriez-vous une idée?
Merci d'avance
Partager