Jquery or javascript удалить существующие классы элемента и сразу добавить новый?

Доброй ночи! У меня в скрипте при нажатии кнопки блоку добавляется класс и бросается кука с именем класса, но если на другую кнопку то к существующему классу добавляется еще один.
Мне необходимо избежать добавления еще одного класса. Так что бы нажав на кнопнку В удалился класс А и добавился В, а например нажав на С удалился класс B и добавился класс С.
Написал вот такой кусок кода, вот только он не добавляет классы, но если убрать $('body').removeAttr('class'); то классы будут добавляться и в итоге получу element class A B C и тд. Как нужно исправить код, что бы заработало, скорее всего я не понимаю как работает Jquery.
<script>

        $(document).ready( function(){
                var n = $('.normal');
                var i = $('.inverse');
                var c = $('.colored');

                n.on("click", function () {
                    document.cookie = "color=normal";
                    $('body').removeAttr('class');
                    $('body').addClass('class', 'normal');
                })
                i.on("click", function () {
                    document.cookie = "color=inverse";
                    $('body').removeAttr('class');
                    $('body').addClass('class', 'inverse');
                })
                c.on("click", function () {
                    document.cookie = "color=colored";
                    $('body').removeAttr('class');
                    $('body').addClass('class', 'colored');
                })
            }

        )

    </script>
<code lang="php">
<body class="<?= $_COOKIE['color']; ?>">
</code>


Спасибо!
  • Вопрос задан
  • 596 просмотров
Решения вопроса 1
$('.element').removeClass(); //без параметра удалит все классы, с параметром - тот, который укажешь, если найдет конечно.

можно хранить цвет в data аттрибуте кнопки. т.е. пишем всего 1 обработчик.
<button data-theme="inverse"></button>
$(button).click(function(e) {
var color = $(e.currentTarget).data('theme');
// логика
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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