Et bien, concernant le addEventListener, j'ai besoin de passer un index a la fonction que j'attache à l'évènement :
- Code:
for(var index=0;index<6;index++){
tabs.add(document.getElementById('tab'+index)).addEventListener('click', tabs.select(index), false);
}
Cette écriture ne fonctionne évidemment pas. Habituellement, je passe par une fermeture lexicale :
- Code:
for(var index=0;index<6;index++){
tabs.add(document.getElementById('tab'+index)).addEventListener('click', evtFct=function(){tabs.select(index).bind(tabs)}, false);
}
Le bind(tabs) est là pour rappeller a JavaScript le contexte dans lequel il doit éxécuter tabs.select
Seulement, dans ce cas, il y a un piège, c'est que l'index étant une fermeture lexicale, il continue d'évoluer a l'intérieur de evtFct en même temps qu'il évolue a l'intérieur de la fonction parent. Résultat logique, je me retrouve toujours avec la valeur 6 pour index (donné par la boucle for) a l'intérieur de tabs.select
Donc, je voudrais modifier la fonction addEventListener afin de lui faire accepter un tableau servant a lister les arguments a passer a la fonction au moment de son appel :
- Code:
addEventListener('event', function, bool, array){
...
function(array) //au lieu de function()
...
}
Pour le getElementByClassName, je regarde ça. A vu de nez, y a certains trucs que je comprends pas.
[edit]En faite, c'est pas que je ne les comprenaient pas, c'est que ça n'allait pas ^^
Les versions données récupèrent les class sur l'ensemble de l'arbre Hors, dans mon cas, je veux récupérer les class sur une une branche donnée, idéalement sans avoir a précisé la branche. D'où l'intérêt de rajouter cette méthode sur chaque branche de l'arbre.[/edit]