Задать вопрос
Nolis
@Nolis
it-гопник

Можно ли сделать код проще на jQuery?

https://codepen.io/Nolis/pen/PoqZYRR
Можно ли как-то сократить подобный код?
  • Вопрос задан
  • 94 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
@fixeri
<div class="myclass">я текст</div>
<div class="arrowopen">я стрелка</div>
<div class="myclass">я текст</div>
<div class="arrowopen">я стрелка</div>
<div class="myclass">я текст</div>
<div class="arrowopen">я стрелка</div>
<div class="myclass">я текст</div>
<div class="arrowopen">я стрелка</div>


$('.arrowopen').click(function () {
  $(this).prev().toggle();
});
Ответ написан
0xD34F
@0xD34F Куратор тега JavaScript
Класс одинаковый задайте для кнопок:

$('.arrowopen').click(e => $(e.target).prev().toggle());

От jquery можно вообще избавиться:

document.addEventListener('click', ({ target: t }) => {
  if (t.classList.contains('arrowopen')) {
    t.previousElementSibling.hidden ^= 1;
  }
});

или

.hidden {
  display: none;
}

document.querySelectorAll('.arrowopen').forEach(function(n) {
  n.addEventListener('click', this);
}, e => e.target.previousElementSibling.classList.toggle('hidden'));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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