Javascript - Array et addEvent [Résolu/Fermé]

Signaler
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
-
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
-
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

Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
56
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>
siniko44
Messages postés
172
Date d'inscription
vendredi 30 juillet 2010
Statut
Membre
Dernière intervention
29 novembre 2013
14
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 ! :)
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
56
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>