0

ボタンがあり、動的に生成されます。最初はクラスが「アクティブ」で、クリックするとクラスが「非アクティブ」に変わります。もう一度クリックすると、アクティブに変わります。

したがって、次のコードを使用してクリックイベントを割り当てました。

$(".active").on("click",function(){
$(this).removeClass('active').addClass('inactive');
});

$(".inactive").on("click",function(){
$(this).removeClass('inactive').addClass('active');
});

問題は、最初の関数が呼び出されるたびに発生します。on の代わりに live を使用すると、正常に動作します。どうすればこれを修正できますか。

4

3 に答える 3

1

HTML を少し変更する必要があるオプションの 1 つとして、次のようなものがあります。

$(function(){    
    $(".toggle").on("click", function(){
        $(this).toggleClass("active").toggleClass("inactive");
    });    
});

これは、クラスが割り当てられたすべての要素に影響し、最初は または のいずれかtoggleを持つと仮定します。inactiveactive

于 2012-08-02T06:21:36.603 に答える
1

.liveに単純に変更することはできません.on

$(selector).live(event_type, function(){});

と同じです

$(document).on(event_type, selector, function(){});

$("body").on("click", '.active', function(){
  $(this).removeClass('active').addClass('inactive');
});

$("body").on("click", '.inactive', function(){
  $(this).removeClass('inactive').addClass('active');
});
于 2012-08-02T06:16:48.467 に答える
0

jqueryのtoggleClass方法を試してください。

リンクで同じことを実現する 2 つの方法を示すデモをここに書きました。ボタンについても同じことができます。

于 2012-08-02T06:22:43.043 に答える