Восстановить стили

28
13 февраля 2018, 09:46

Есть функция которая добавляет новые стили на указанный класс при нажатии на кнопку. Перед тем как добавить стили скрипт сначало ищет совпадения с value кнопки и data-time у div. Проблема заключается в следующем как при нажатии на другую кнопку с другим значением удалить стили, которые были применены в предыдущий раз?
Вот скрипт:

<script>
    var cats = document.querySelector(".categories"),
        click = function click(e) {
            var el = document.querySelectorAll(".fil0[data-time=\"" + e.target.value + "\"]");
            if (el) {
                $(el).css('fill', 'red');
            }
        };
    [].forEach.call(cats.children, function (e) {
        return e.addEventListener("click", click);
    });
</script>

Дивы:

<polygon class="fil0 str0" data-time="1" points="6584,19891 6584,23682 10061,23682 10061,19891 "/>
<polygon class="fil0 str0" data-time="2" points="6584,19891 6584,23682 10061,23682 10061,19891 "/>
<polygon class="fil0 str0" data-time="3" points="6584,19891 6584,23682 10061,23682 10061,19891 "/>

И кнопки:

<button type="button" value="1" class="category">1</button>
<button type="button" value="2" class="category">2</button>
<button type="button" value="3" class="category">3</button>
Answer 1

Бросайте предыдущие изменяемые стили в отдельный массив (обновляя каждый раз при изменении, естественно), и запоминайте их значения(их можно получить стандартными методами js https://learn.javascript.ru/styles-and-classes), если просто изменяете параметры: например, было display:inline, а Вы, в теле функции изменили на display:block и inline, соответственно, нужно запомнить, а если добавляете, какие-то новые, то можно также получать значения( “none”) или пихать вручную. P.s.: Пример кода бросить сейчас не могу тк с телефона... но, по крайней мере, постарался изложить свою мысль

READ ALSO
Получить hash из div

Получить hash из div

Как получить hash из этого дива?(На JS)

41
Не срабатывает фуннкция очистки onClear

Не срабатывает фуннкция очистки onClear

Привет, есть код, при нажатии на кнопку "Clear" должны очиститься все элемент в списке, что у меня не так?

48
как удалить пустой массив с обьекта

как удалить пустой массив с обьекта

Как можно удалить массив из объекта если этот массив пустой? Без использования es6

21