@yanieniz

Данный код можно ка-то сократить?

allButton.addEventListener('click', () => {
      show(allItems); // все работы
      });
    loveButton.addEventListener('click', () => {
      show(loveItems); // для влюбленных
      });
    chefButton.addEventListener('click', () => {
      show(chefItems); // для шефа
      });
    girlButton.addEventListener('click', () => {
      show(girlItems); // для девушки
      });
    guyButton.addEventListener('click', () => {
      show(guyItems); // для парня
      });
    grandmotherButton.addEventListener('click', () => {
      show(grandmotherItems); // для бабушки
      });
    grandfatherButton.addEventListener('click', () => {
      show(grandfatherItems); // для дедушки
      });
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 3
sergiks
@sergiks Куратор тега JavaScript
♬♬
Если последуете совету из ответа на предыдущий ваш вопрос Как можно сократить данный код?
и привёдете к единому стандарту имена классов, переменных и, видимо, блоков,
то можно так:
for const [name, button] of Object.entries(buttons) {
  button.addEventListener('click', () => show( this[name + 'Items']);
}
Ответ написан
v3shin
@v3shin
Веб-шаман
<button class="showCategoryButton" data-category="blah">Show blah</button>


document.querySelectorAll('.showCategoryButton').forEach(button => {
    button.addEventListener('click', () => {
        show(this.dataset.category);
    });
});
Ответ написан
rpsv
@rpsv
делай либо хорошо, либо никак
const items = [
    [allButton,allItems],
    [loveButton,loveItems],
    [chefButton,chefItems],
    // ...
];
items.forEach((item) => {
    [button, values] = item;
    button.addEventListener('click', () => show(values));
});
Ответ написан
Ваш ответ на вопрос

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

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