Javascript - Array et addEvent

Résolu/Fermé
siniko44
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
- 7 avril 2011 à 16:52
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
- 9 avril 2011 à 15:15
Bonjour,
Voici mon script :

<li>LOL</li>
<li>PSY</li>
<li>BOB</li>
<script type="text/javascript">
var ali = document.getElementsByTagName('li');
function lih(numli) {
ali[numli].innerHTML='TEST !';
}
for(i=0;ali[i];i++) {
ali[i].addEventListener('click', function(){lih(i)},true); }
</script>

Le problème, c'est que d'après la console de Chrome, "numli" vaut 3 (autrement dit la valeur de "i" lorsqu'il à finit sa boucle), peu importe le <li> où je clique.
Merci de me venir en aide ! :)

2 réponses

creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
58
8 avril 2011 à 01:59
Essaie avec :

<ul>
    <li>LOL</li>
    <li>PSY</li>
    <li>BOB</li>
</ul>
<script type="text/javascript">
    function lih(numli) {
        this.innerHTML='TEST !';
    }
    for(i=0;ali[i];i++) {
        ali[i].addEventListener('click', function(){lih();},true);
    }
</script>
0
siniko44
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
17
8 avril 2011 à 08:55
Merci, tu m'as bien aidé, mais cela ne marchais toujours pas. J'ai juste remit :
ali[i].addEventListener('click', lih,true);
vue qu'il n'y avait pas besoin d'arguments, et ça fonctionne ! :)
0
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
58
9 avril 2011 à 15:15
Rectification, j'ai oublié une ligne précédemment :

<ul>
    <li>LOL</li>
    <li>PSY</li>
    <li>BOB</li>
</ul>
<script type="text/javascript">
    function lih(numli) {
        this.innerHTML='TEST !';
    }

    var ali = document.getElementsByTagName('li');

    for(i=0;ali[i];i++) {
        ali[i].addEventListener('click', function(){lih();},true);
    }
</script>
0