Javascriptコードの一部にリストアイテムの配列があります。それぞれにonclickイベントハンドラーを割り当てたいと思います。各ハンドラーは同じ関数ですが、入力引数が異なります。今私は持っています:
function contentfill(i) {
box = document.getElementById("text");
box.style.background="rgba(0,0,0,0.8)";
var content = new Array();
contentdivs = document.querySelectorAll("#contentfill>div");
box.innerHTML = contentdivs[i].innerHTML;
}
li[3].onclick = function() {contentfill(0);};
li[4].onclick = function() {contentfill(1);};
li[5].onclick = function() {contentfill(2);};
これは十分に機能しますが、ループを使用して同じことを実現したいと思います。たとえば、次のようになります。
for(i=3;i<=5;i++) {
j=i-3;
li[i].onclick = function() {contentfill(j);};
}
ただし、これは機能しません。jはループの最後で2として定義されているように見えるので、クリックするたびに、contentfill(2)を呼び出すだけのようです。