[JS] AddeventListener avec paramètres
Résolu
StreM
Messages postés
515
Statut
Membre
-
cob -
cob -
Salut à tous,
Ayant beaucoup d'éléments qui répondront à des évènements assez peu différents :
<img src="img1.jpg" name="image" onclick="mafonction('valeur1');">
<img src="img2.jpg" name="image" onclick="mafonction('valeur2');">
Je pensais faire un script d'initialisation qui boucle sur toutes les images en question (jusqu'ici, pas de problème), et qui leur affecte l'evenement onclick :
Mais impossible de passer un paramètre à ma fonction : "uncaught exception : null"
ce qui est d'autant plus frustrant : un "try... catch" ne fonctionnera pas ici je pense !
Quelqu'un aurait-il la solution ou un pti truc pour faire passer un paramètre à ma fonction lors de ma boucle ? Le paramètre serait i.
Ayant beaucoup d'éléments qui répondront à des évènements assez peu différents :
<img src="img1.jpg" name="image" onclick="mafonction('valeur1');">
<img src="img2.jpg" name="image" onclick="mafonction('valeur2');">
Je pensais faire un script d'initialisation qui boucle sur toutes les images en question (jusqu'ici, pas de problème), et qui leur affecte l'evenement onclick :
Images = document.getElementsByName('image');
for(var i=0;i<Images.length;i++){ // on parcourt toutes les images
Images[i].addEventListener('click','mafonction',true); // on affecte le onclick
}
Mais impossible de passer un paramètre à ma fonction : "uncaught exception : null"
ce qui est d'autant plus frustrant : un "try... catch" ne fonctionnera pas ici je pense !
Quelqu'un aurait-il la solution ou un pti truc pour faire passer un paramètre à ma fonction lors de ma boucle ? Le paramètre serait i.
A voir également:
- Addevent js
- Copiez l'image dans un logiciel d'édition d'images ou un outil en ligne comme js paint ou pixlr e. remplissez les cases en suivant le code couleur. des cases supplémentaires vont se remplir automatiquement. que représente le dessin ? ✓ - Forum Windows
- Js arrondir - Forum Webmastering
- Isset js ✓ - Forum Javascript
- Reproduction d'un dessin - Forum Graphisme
- Js/packed.agent.n ✓ - Forum Virus
5 réponses
Salut,
Tu as testé :
addEventListener(elt, function(){ foo(bar); }, false);
Au lieu de :
addEventListener(elt, foo(bar), false);
Tu as testé :
addEventListener(elt, function(){ foo(bar); }, false);
Au lieu de :
addEventListener(elt, foo(bar), false);
Salut,
il y a une solution la dedans : http://thierry.larmoire.free.fr/jeux/demineur/
voir la fonction Smiley()
dans ton cas :
Images = document.getElementsByName('image');
for(var i=0;i<Images.length;i++){ // on parcourt toutes les images
Images[i].index=i; // on rajoute un champ index a l'image
Images[i].onclick=function(e) {
// le this pour cette methode, est l'image cliquée
return mafonction(this.index);
}
}
a+
il y a une solution la dedans : http://thierry.larmoire.free.fr/jeux/demineur/
voir la fonction Smiley()
dans ton cas :
Images = document.getElementsByName('image');
for(var i=0;i<Images.length;i++){ // on parcourt toutes les images
Images[i].index=i; // on rajoute un champ index a l'image
Images[i].onclick=function(e) {
// le this pour cette methode, est l'image cliquée
return mafonction(this.index);
}
}
a+
Merci, mais j'ai trouvé en fait :
Thierry, il est super sympa ton démineur, mais le bouton droit sous Firefox pose des soucis je pense...
Va voir ce topic :
http://www.commentcamarche.net/forum/affich-1906554-%5BJS%5D-Clique-droit-sous-FF
;-)
edit : ah... sous IE aussi ?!?
objet.setAttribute('OnClick', 'mafonction('+variable+')');
Thierry, il est super sympa ton démineur, mais le bouton droit sous Firefox pose des soucis je pense...
Va voir ce topic :
http://www.commentcamarche.net/forum/affich-1906554-%5BJS%5D-Clique-droit-sous-FF
;-)
edit : ah... sous IE aussi ?!?
en faite j'ai laissé tomber le traditionnel right-click pour un ctrl-click
par-ce que j'utilise une extension firefox (allinone gesture*) qui gère d'une façon inhabituel le menu contextuel. Toutes les methodes que j'ai vues sur le net ne marchent pas.
* c'est une super extension qui permet d'associer des traits tracés à la souris à des actions (history-back history-forw new-tab new-window...)
https://addons.mozilla.org/extensions/moreinfo.php?id=12
par-ce que j'utilise une extension firefox (allinone gesture*) qui gère d'une façon inhabituel le menu contextuel. Toutes les methodes que j'ai vues sur le net ne marchent pas.
* c'est une super extension qui permet d'associer des traits tracés à la souris à des actions (history-back history-forw new-tab new-window...)
https://addons.mozilla.org/extensions/moreinfo.php?id=12
Salut à tous,
Je reprends cette discussion, car je suis tombé dessus ayant eu besoin de faire l'équivalent d'un addEventListener mais avec paramètres.
La solution qui consiste à utiliser setAttribute, fonctionne trés bien sous Firefox, mais pas du tout sur IE7...
Seul moyen faire à l'ancienne méthode.. elt.onclick = function (){ };
Si vous avez d'autres éléments..
JS
Je reprends cette discussion, car je suis tombé dessus ayant eu besoin de faire l'équivalent d'un addEventListener mais avec paramètres.
La solution qui consiste à utiliser setAttribute, fonctionne trés bien sous Firefox, mais pas du tout sur IE7...
Seul moyen faire à l'ancienne méthode.. elt.onclick = function (){ };
Si vous avez d'autres éléments..
JS
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
essaye plutot "'mafonction'" sans les guillemets.
Si tu veux passer un parametre à ta fonction, c'est impossible, mais...
Tu peut utiliser le concept objet de DOM/javascript:
tu donnes à l'objet auquel t'essaye d'attacher l'evenement une paire parametre/valeur,
puis tu utilise dans ta fonction
Si tu veux passer un parametre à ta fonction, c'est impossible, mais...
Tu peut utiliser le concept objet de DOM/javascript:
tu donnes à l'objet auquel t'essaye d'attacher l'evenement une paire parametre/valeur,
puis tu utilise dans ta fonction
this.[parametre]