@goshatravin

Как реализовать последовательное добавление классов?

Добырй вечер , как реализовать добавление классов таким образом , что бы при нажатии на кнопу с синим цветом проверяло если ли уже цвет у первой , если есть идем ко второй если и там есть даем цвет третьей , и так далее и делать toggle цветов
есть 3 span елемента
<span class="span1">Т</span>
<span class="span2">А</span>
<span class="span3">К</span>


и три кнопки которые дают определенный цвет
<li class="list__item bg-green">один</li>
                        <li class="list__item bg-blue">два</li>
                        <li class="list__item bg-purple">три</li>
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
@BitRouter
1. проверка наличия цвета
$(selector).css('background-color')
2. тогглик на классы toggleClass

пример:
HTML разметка
<ol class="nav-color">
    <li class="red" data-color="red">красный</li>
    <li class="blue" data-color="blue">голубой</li>
    <li class="orange" data-color="orange">апесинка :)</li>
</ol>
<div class="content-box">
    <span class="toggle-el">T</span>
    <span class="toggle-el">E</span>
    <span class="toggle-el">S</span>
    <span class="toggle-el">T</span>
</div>

JavaScript (поэтапное добавление цвета)
$('.nav-color').on('click', 'li', function(e){
    let content = $('.content-box');
    let currentColor = $(this).data('color');
    content.children('.toggle-el').each(function(i,e){
        if($(this).hasClass(currentColor)){
            $(this).next('.toggle-el').addClass(currentColor); 
            return false;
        }
    });
    return false;
});


PS js не проверял но в этом направление можно реализовать
Ответ написан
@choupa
Архитектор (обычный, который строит)
html-разметка от BitRouter, спасибо ему.

$( '.nav-color' ).on( 'click', 'li', function()  {
    let currentColor = $( this ).data( 'color' );
    $( '.toggle-el:not(.' + currentColor + '):first' ).addClass( currentColor );
} );

P.S.: Тоже не проверял. :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы