よし、
私はこのように見えるものを持っています:
for (j = 0; j < btnArr.length; j++)
{
var btn = document.createElement("button");
btn.addEventListener("click", function() { press(this, j) }, false);
div.appendChild(btn);
}
私の問題は、イベントが遅い時間に発生するj
ため、イベントの関数がトリガーされるまでにすでに値が変更されていることです。j
関数が宣言されたときに、j
それ自体への参照ではなく、関数がの値を直接使用するようにしたい。
の2番目のパラメータが文字列の場合addEventListener
、次のようになります。
btn.addEventListener("click", "function() { press(this, " + j + ") }", false);
誰かがそれが可能かどうか、そしてこれを行う方法を知っていますか?
少し調べてみましたが、ほんの数語で問題を正しく説明するのが難しいため、関連するものが見つかりません。
ちなみに、これはGreasemonkeyスクリプト用なので、.addEventListener()
代わりに.onclick = (...)