例はこれであり、これは機能していません。私の間違いは何ですか?
var i=1;
for(i; i <=165; i++){
jQuery(".tekAlan"+i).click(function() {
jQuery(".tekAlan"+i).addClass("tekAlanSecildi");
});
}
ありがとう。
例はこれであり、これは機能していません。私の間違いは何ですか?
var i=1;
for(i; i <=165; i++){
jQuery(".tekAlan"+i).click(function() {
jQuery(".tekAlan"+i).addClass("tekAlanSecildi");
});
}
ありがとう。
i
値ではなく参照によって渡されているためi
、ループが実行された後の数値を参照しているわけではありません。この簡単な例を見て、私が何を意味するかを確認してください。
この場合、おそらく属性セレクターとthis
:を使用できます。
jQuery('[class^="tekAlan"]').click(function() {
jQuery(this).addClass("tekAlanSecildi");
});
現在のコードを修正したい場合は、無名関数でシャドウする必要があります。 i
for(var i = 1; i <= 165; i++){
(function(i) {
jQuery(".tekAlan" + i).click(function() {
jQuery(".tekAlan" + i).addClass("tekAlanSecildi");
});
})(i);
}
クリックしたアイテムだけにクラスを追加したいと思います。ただし、常に最後のクラスにクラスを追加します。これは、forの終了後にアクセスされるため、常に165が含まれているためです。これを実行して問題を解決します。
var i=1;
for(i; i <=165; i++){
jQuery(".tekAlan"+i).click(function() {
jQuery(this).addClass("tekAlanSecildi");
});
}
jQuery(this)
イベントの影響を受ける要素の参照です(この場合はclick
)
これはあまり明確ではありませんが、次のようなことを試すことができます
1)すべての要素にクラスを追加します
2)
$('.someclass').click(function(){
$(this).addClass('someotherclass');
})
forループは必要ありません。