Bonjour,
Je construis actuellement une barre de navigation pour un calendrier.
]
On clique sur un mois et il s'affiche dans le calendrier, bref un truc banal.
J'utilise une fonction qui d'abord atteint l'ID (JAN, FEB, MAR, etc...) pour y insérer un Onclick pour déclencher un script qui se nomme chargeCal
Le script chargeCal contient deux arguments la valeur du mois (01, 02 ,03 etc..) et l'année en cours
Le onclick renvoie donc par exemple chargeCal(01,2014) et à partir de là le calendrier se construit.
Mais ma fonction qui génère le onclick interprète bizarrement la réponse JSON
Pour l'exemple j'ai construit la fonction avec les 3 premier mois, donc une boucle toute bête avec comme compteur countMONTH <4
Le résultat est curieux :
Les trois onclick sont bien construit (Tous les ID ont bien été ciblés), mais quand je clique sur les boutons le lien me renvoie toujours sur le mois qui correspond à la dernière valeur de la boucle FOR
Donc je devrais avoir
ChargeCal(01,2015)
ChargeCal(02,2015)
ChargeCal(03,2015)
Mais j'ai :
ChargeCal(03,2015)
ChargeCal(03,2015)
ChargeCal(03,2015)
Bon, je suis certain que c'est une erreur de Noob de débutant, mais à force de retourner le code dans tous les sens, je ne vois plus où est l'erreur.
Merci d'avance
P.S : j'ai deux fois le même ID car j'utilise Boostrap en responsive
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 ***************************************** **********Le code de la fonction************* ***************************************** function navbarMONTH(arg) { var datas = eval('(' + arg + ')') var jsonMONTH = { "a1": "JAN", "a2": "FEB", "a3" : "MAR", "b1": "01", "b2" : "02", "b3" : "03" } for (var countMONTH = 1; countMONTH < 4; countMONTH++) { var buttonMONTH = document.querySelectorAll('#' + jsonMONTH['a' + countMONTH]) varMONTH = jsonMONTH['b' + countMONTH] var nb_buttonMONTH = buttonMONTH.length for (var i = 0; i < nb_buttonMONTH; i++) { buttonMONTH[i].onclick = function () { eval('chargeCal(' + varMONTH + ',' + datas.year + ')') } } } }
Partager