@Vladimir141

Чем можно заменить get()?

Я взял код мини плеера от сюда
И я бы хотел добавить свою музыку( от 2-х до 10 песен) с такой же html разметкой но при попытке запустить новое добавленное аудио воспроизводится первое естественно благодаря данной строчке var song = $("audio").get(0); . Как это можно переделать ? Пытался сделать чтобы код срабатывал по id но не смог реализовать должным образом.
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Проблема не в get, можно ничем его не заменять. При обработке клика вместо первого попавшегося audio надо хватать тот, что соответствует нажатой кнопке (это же касается элементов .play и .pause, с той лишь разницей, что тут вы хватаете всё, что есть), т.е., который находится в том же .container. От кликнутого элемента поднимаемся к .container и ищем внутри него нужные элементы:

$(document).on('click', '.play, .pause', function() {
  const $this = $(this);
  const $container = $this.closest('.container');
  const isPlay = $this.hasClass('play');

  $container.find('.play').toggleClass('active', isPlay);
  $container.find('.pause').toggleClass('active', !isPlay);
  $container.find('audio').get(0)[isPlay ? 'play' : 'pause']();
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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