2016-10-08 6 views
0

このコードは次のように動作します。 .hero-build-wrapが既にヒーロービルドにクラスを追加していて、それを再度クリックすると、それを削除するようにしています。JQuery addClass removeClass同じクラスをクリックした場合

<div class="hero-build-wrap"> 
    <a class="hero-mini hero-mini-assa"> 
    <img class="hero-hover-big" src=""> 
    <img class="hero-hover-small"src="> 
    </a> 
    <div class="hero-build hero-selected"> 
     <a href=""> 
     <p>This is a test</p> 
     </a> 
     <a href=""> 
     <p>Anothertest</p> 
     </a> 
    </div> 
</div> 

答えて

2

、あなたがクラスを追加する場合は、クラス

$(function() { 
    $(".hero-build-wrap").click(function() {  
    $(this).children(".hero-build").toggleClass("hero-selected"); 
    }); 
}); 

を追加する行を削除します。私は代わりに.addClassの.toggleclassしかしdidntの仕事

$(function() { 
    $(".hero-build-wrap").click(function() { 
    $(".hero-build").removeClass("hero-selected"); 
    $(this).children(".hero-build").addClass("hero-selected"); 
    }); 
}); 

でHTMLを試してみました そのクラスをtoogleすると、最終結果はそれを追加することを取り消すでしょう


012あなたが何かを行うことができますもしそうなら言われて、あなたはまた $().childrenので、他の場所でクラスを削除しようとすることができることを

は非常に奇妙なコール

です:

$(function() { 
    $(".hero-build-wrap").click(function() { 
    var $children = $(this).children(".hero-build").toggleClass("hero-selected"); 
    $('.hero-selected').not($children).removeClass("hero-selected"); 
    }); 
}); 
+0

をあなたは私の更新を見ましたか? – charlietfl

+0

ありがとうございます! – Karuw

+0

は、基本的なhtml構造とともに、期待される動作を常に提供しようとしています...他の要素が含まれていると仮定しなければなりませんでした...そして、正しく推測されました – charlietfl

関連する問題