2016-10-08 4 views
0

Этот код ниже работает. Я также пытаюсь добавить, что если .hero-build-wrap уже добавил класс для сборки-героя, и вы нажмете его снова, он удалит его. Я попытался с .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"); 
    }); 
}); 

Если добавить класс, то toogle этого класса, конечным результатом будет его отменить добавление


Это, как говорится, вы также можете пытаться удалить класс в другом месте, так как $().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

 Смежные вопросы

  • Нет связанных вопросов^_^