Bonjour!
J'ai une fonction javascript qui permet à l'utilisateur de changer de page lorsqu'il clique sur la rangée d'un tableau. L'URL cible est contenu dans la variable nommée « url » (de type string) et la référence vers la ligne du tableau est dans la variable nommée « tr » (de type objet).
Voici mon code initial, fautif (afin de vous simplifier la compréhension de mon problème, j'ai remplacé une bout de script non concerné par « //... »):
Ce code fonctionnait, toutefois la valeur de « url » était toujours la même d'un appel à l'autre de la fonction. J'ai donc remplacé le tout par ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function assignerURL() { var url; var tr; //... tr.onclick = function() { window.location.href = url; } }
J'exécute une fonction qui renvoie une autre fonction. Cela fonctionne très bien, autant dans IE que dans Firefox mais j'ai l'impression que cette façon de faire n'est pas très propre.
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 function changerURL(url) { return function() { window.location.href = url; } } fucntion assignerURL() { var url; var tr; //... tr.onclick = changerURL(url); }
Donc voici mes questions:
- Y a-t-il une meilleure méthode pour obtenir le même résultat, soit de passer de paramètres à une fonction assignée à un évènement?
- Serait-ce mieux d'utiliser « addEventListener » et si oui, comment faire pour l'utiliser avec une fonction à paramètres?
Merci bien!![]()
Partager