2016-10-08 25 views
0

下面的代碼工作。我想補充一點,如果.hero-build-wrap已經將這個類添加到了hero-build中,然後再次單擊它,它就會將其刪除。 我試着用.toggleclass代替.addClass但沒有工作Jquery addClass removeClass如果點擊相同的類

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

的HTML:

<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"); 
    }); 
}); 

如果你添加一個類,然後去那個班,最終的結果是它會取消添加它


話雖這麼說,你也可能試圖在別處刪除,因爲$().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