littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.

Какой подход оптимальнее?

Есть данные в формате json. JS парсит и на их основе создает элементы на странице.
Для каждого объекта в json есть несколько элементов на странице и они связаны:
карточка элемента, элемент в меню, чекбокс. лейбл, иконка.

При клике на каждый должно происходить какое-то действие с другим связанным элементом(например, при клике на чекбокс, скрывать карточку, а при клике на карточку - подсвечивать пункт меню).

Собственно вопрос, какой из этих 2 путей выбрать и что будет оптимальнее/правильнее:

1. Создать массив, в который записывать объекты для каждого элемента, например:
var items = [];
...
var current_elem = {};
current_elem.menuDiv = createDiv();
current_elem.iconDiv = createDiv();
current_elem.cardDiv =  createDiv();
current_elem.checkboxDiv =  createDiv();
current_elem.labelDiv =  createDiv();
items.push(current_elem);
...


И в каждом элементе в атрибуте('data-element-id') хранить порядковый номер элемента в массиве и по нему уже обращаться.

2. в каждом элементе в атрибуте('data-element-id') хранить порядковый номер элемента, но каждый раз при клике на объект вычислять зависимый через document.getElementById();

То есть нужно при клике по чекбоксу скрыть карточку - ок:
hide(document.getElementById('checkbox-for-' + this.getAttribute('data-element-id')));
  • Вопрос задан
  • 195 просмотров
Пригласить эксперта
Ответы на вопрос 1
@lega
Можно что-то типа такого: jsfiddle.net/lega911/gh3coxfy
Если вы хотите что-то типа самостоятельных виджетов, то можно сделать попроще
Ответ написан
Ваш ответ на вопрос

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

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