LoginSignup
scythercas
@scythercas

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

親の関数から子の関数に引数を引き継ぎたい

以下のようなコードを書いていました。

buttons.forEach((value, index)=>{
    value.addEventListener('click',index=>{
        num.push(index);
    },false)
});

目標は、配列buttonsに、td要素であるbut0, but1, ... , but9が入っていて、クリックしたらその数字が配列numに入ることです。
そのためにvalue.addEventListenerの第二引数にあるindexが、親の関数であるbuttons.forEachの第二引数であるindexを引き継ぐようにしたいです。

どなたか教えてくださいm_.._m

0

2Answer

addEventListener に登録するイベントハンドラの引数は event なのでは?

(event) にするか引数を使わないなら () にすればいいと思います。

buttons.forEach((button, index)=>{
    button.addEventListener('click',()=>{
        num.push(index);
    },false)
});
2

Comments

  1. @scythercas さんの回答に私はコメントできないので、こちらに書きます。
    こう書いたのと同じなので、別物になります。

    function eventHandler(index) {
    num.push(index);
    }

    button.forEach((value, index) => {
    value.addEventListenner('click', eventHandler, false);
    });

  2. @scythercas

    Questioner
    なるほど、ありがとうございます!!

@shiracamus さん、ありがとうございます。
仰る通りでした。

buttons.forEach((value, index)=>{
    value.addEventListener('click',index=>{
        num.push(index);
    },false)
});

この状態だとひとつめのindexとふたつめ以降のindexは別物になるのでしょうか。

0

Your answer might help someone💌