Javascript - Array et addEvent

Résolu
siniko44 Messages postés 187 Statut Membre -  
creadiff Messages postés 483 Statut Membre -
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. creadiff Messages postés 483 Statut Membre 57
     
    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
    1. siniko44 Messages postés 187 Statut Membre 17
       
      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
  2. creadiff Messages postés 483 Statut Membre 57
     
    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