Javascript - Array et addEvent

Résolu
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

  1. 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>
    1. 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>
      1. 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 ! :)