0

SOで以前に回答した質問に基づいて、要素onClickにCSSクラスを追加するこのスクリプトを作成しました。問題は、それが1回しか機能しないことです。機能をリセットするにはどうすればよいですか?

これはjQueryコードです:

jQuery(function() {
jQuery('.close-button').click(function(){
    jQuery(".content-display").addClass("cover");
    jQuery(".close-button").addClass("cover");
});

jQuery('.project').click(function(){
    jQuery('.content-display').addClass("uncover");
    jQuery('.close-button').addClass("uncover");
    }); 
});

そして、すべてをいじる。

4

3 に答える 3

4

.toggleClass()代わりに使用してください:

jQuery('.project').click(function(){
        jQuery('.content-display').toggleClass("cover");
        jQuery('.close-button').toggleClass("cover");
    }); 
});

このように、クラスがすでに存在する場合、それは削除されます。それ以外の場合は追加されます。また、 sは最初に表示されるため、coverクラスを切り替える必要があります。div

デモ

于 2012-09-23T21:20:43.427 に答える
2

アクションで代替クラスを削除する必要があります。現在のコードでcloseとprojectの両方を押すと、カバークラスとアンカバークラスの両方があります

jQuery(function() {
   jQuery('.close-button').click(function(){
       jQuery(".content-display").addClass("cover").removeClass("uncover");
       jQuery(".close-button").addClass("cover").removeClass("uncover");
   });

   jQuery('.project').click(function(){
       jQuery('.content-display').addClass("uncover").removeClass("cover");
       jQuery('.close-button').addClass("uncover").removeClass("cover");
   }); 
 });

この特定のケースでは、uncoverクラスの使用は不要と思われるため、単純なremoveClassソリューションに投票します(@Stuart Feldt)

于 2012-09-23T21:27:55.450 に答える
1

divを非表示にして表示したいだけの場合は、次を試すことができます。

jQuery(function() {
    jQuery('.close-button').on('click', function(){
        jQuery(".content-display").addClass("cover");
        jQuery(".close-button").addClass("cover");
    });

    jQuery('.project').on('click', function(){    
        jQuery(".content-display").removeClass("cover");
        jQuery(".close-button").removeClass("cover");
    }); 
});
于 2012-09-23T21:28:08.297 に答える