div
をクリックすると、ループでdiv
要素が作成されましたが、background-color
を変更したいと思います。ループ内のjQueryクリック()
var c = $("#container")[0];
for(var i=0; i<6;i++){
var x = document.createElement("div");
x.className = "sqare";
x.click(changecolor(this));
c.appendChild(x);
}
function changecolor(p){
return function() {
p.css("background-color", "yellow");
}
}
私はこのAssign click handlers in for loopに従いますが、失敗した...
this
は、引数と
css()
はとてもいずれかのjQueryのメソッドであるとして
x
を渡す代わりに
window
オブジェクトを参照してもよい要素を参照していない
を'? – elclanrs
'this'の値はループの繰り返しごとに同じになり、表示されたコードからは、そのコードがグローバルスコープ内にある場合はどの値(' window')であるかはわかりません。また、 'x'はDOM要素なので、' .click() 'メソッドはクリックハンドラを割り当てません。 – nnnnnn