私はこのスクリプトを持っています:
var MyClass = {
MyArray: new Array(0, 1, 2, 3, 4),
MyFunc1: function() {
var i = 0;
for (i = MyClass.MyArray.length - 1; i>=0; i--) {
var cen = document.getElementById("cen_" + i); // It is an img element
cen.src = "col.png";
cen.className = "cen_act";
cen.onclick = function() { MyClass.MyFunc1(i); };
} else {
cen.src = "no.png";
cen.className = "cen";
cen.onclick = null;
}
}
},
MyFunc2: function(id) {
alert(id);
}
}
私の問題は、この行で、cen.onclick = function() { MyClass.MyFunc1(i); };
送信される引数MyFunc2
が常に-1であることです。この関数は、それぞれにonclickイベントMyFunc1
を持つ 4 つの画像を作成する必要があります。各画像をクリックすると、MyFunc2 関数は対応する i値を表示するはずです。i値は、作成された各イベントとイメージ要素に対して「保存」されていないように見えますが、その「ポインター」のみが保存されています。
ありがとう!