2

クラス名が .sel-display-on の div があります。クリックしたらjqueryで.sel-display-offに変更したい。これはまったく可能ですか?この新しいクラス名の css プロパティは適用されますか?

$('.sel-display-on').click(function (e) {
        e.stopPropagation();
        // change class name to .sel-display-off
});
4

5 に答える 5

4
$(this).removeClass('sel-display-on').addClass('sel-display-off');

または、この要素に他のクラス名がないことが確実な場合 (あまり良い方法ではありませんが、より高速になる可能性があります):

$(this).attr('class', 'sel-display-off');
于 2012-08-27T21:20:56.620 に答える
1
$(this).addClass('...');

また

$(this).attr('class','...');
于 2012-08-27T21:21:04.013 に答える
0

次のようなことができます:

$('.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";
       }
});
于 2012-08-27T21:21:44.840 に答える
0

あなたのすべての質問に対する答えは「はい」です

addClassremoveClasstoggleClass、およびを必要に応じて使用できますattr('class', ...)

これが にある場合、バインドした他の機能を停止しない限り、上記e.stopPropagationは必要ありません。div

于 2012-08-27T21:21:53.077 に答える
0

http://api.jquery.com/addClass/

http://api.jquery.com/removeClass/

はい、上記の 2 つの関数を使用してこれを実現します。また、新しいクラスはすぐに適用されます。

もう 1 つの注意: クラス .sel-display-on を削除すると、.sel-display-on を使用してその要素を選択できなくなります。

于 2012-08-27T21:23:02.687 に答える