@CenterJoin

Как заставить работать несколько граф с оценками?

Вот пример:



Нужно, чтобы обе графы с оценками работали, но вторая не работает. Почему?
  • Вопрос задан
  • 99 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
вторая не работает

Работает. Только не независимо, а как часть первой. Надо не все .grade-item обрабатывать, а только те, у кого тот же родитель, что и у кликнутого:

document.querySelector('.nav-student-new-lesson').addEventListener('click', e => {
  if (e.target.classList.contains('grade-item')) {
    const items = [...e.target.parentNode.children];
    const grade = 1 + items.indexOf(e.target);
    const color = [
      [ 5, 'rgba(150, 255, 0, 0.3)' ],
      [ 3, 'rgba(255, 150, 0, 0.3)' ],
      [ 1, 'rgba(255, 0, 0, 0.3)' ],
    ].find(n => n[0] <= grade)[1];

    items.forEach((n, i) => n.style.background = i < grade ? color : 'white');
  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nykakdelishki
@nykakdelishki
Системный аналитик
https://jsfiddle.net/5czr48gL/5/

Потому что ты работаешь с двумя графами а не с одним
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы