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 57
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 57
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