クラス名が .sel-display-on の div があります。クリックしたらjqueryで.sel-display-offに変更したい。これはまったく可能ですか?この新しいクラス名の css プロパティは適用されますか?
$('.sel-display-on').click(function (e) {
e.stopPropagation();
// change class name to .sel-display-off
});
クラス名が .sel-display-on の div があります。クリックしたらjqueryで.sel-display-offに変更したい。これはまったく可能ですか?この新しいクラス名の css プロパティは適用されますか?
$('.sel-display-on').click(function (e) {
e.stopPropagation();
// change class name to .sel-display-off
});
$(this).removeClass('sel-display-on').addClass('sel-display-off');
または、この要素に他のクラス名がないことが確実な場合 (あまり良い方法ではありませんが、より高速になる可能性があります):
$(this).attr('class', 'sel-display-off');
$(this).addClass('...');
また
$(this).attr('class','...');
次のようなことができます:
$('.sel-display-on').click(function (e) {
e.stopPropagation();
// change class name to .sel-display-off
$(this).removeClass('sel-display-on').addClass('sel-display-off');
});
これは、 toggleClass を使用して行うこともできます。
$('.sel-display-on').click(function (e) {
e.stopPropagation();
// change class name to .sel-display-off
$(this).toggleClass(function(){
if($(this).is('.sel-display-on'){
return "sel-display-off";
} else {
return "sel-display-on";
}
});
あなたのすべての質問に対する答えは「はい」です
addClass
、removeClass
、toggleClass
、およびを必要に応じて使用できますattr('class', ...)
。
これが にある場合、バインドした他の機能を停止しない限り、上記e.stopPropagation
は必要ありません。div
http://api.jquery.com/addClass/
http://api.jquery.com/removeClass/
はい、上記の 2 つの関数を使用してこれを実現します。また、新しいクラスはすぐに適用されます。
もう 1 つの注意: クラス .sel-display-on を削除すると、.sel-display-on を使用してその要素を選択できなくなります。