У меня есть лабиринт, который я пытаюсь отсортировать:
У меня есть эта сетка с 12 тегами привязки
for (let i = 1; i <= 12; i++) {
$("#minuetti").append(
`<div class="col-6 col-md-3"> <a id="minuetto${i}" class="btn btn-primary btn-lg mb-1 minuetto">Minuetto ${i}</a></div>`
);
}
Каждый из них будет воспроизводить другой файл mp3 с кодом ниже используя Howler. js.
$(".minuetto").on("click", function() {
let id = this.id;
let minuettoPath = `assets/music/${id}.mp3`;
let cell = new Howl({
src: [minuettoPath],
onplay: function() {
$(`#${id}`).text("Stop");
$(".minuetto").addClass("disabled");
$(`#${id}`).removeClass("disabled");
$(`#${id}`).removeClass("minuetto");
$(`#${id}`).on("click", function() {
cell.stop();
});
},
onend: function() {
$(".minuetto").removeClass("disabled");
$(`#${id}`).text(`Minuetto ${id.slice(8)}`);
$(`#${id}`).addClass("minuetto");
this.unload();
}
});
cell.play();
});
Моя проблема:
Я пытаюсь изменить текст нажатой кнопки и оставить ее включенной. Я отключаю все оставшиеся (11) кнопки до конца mp3-файла. Но когда я нажимаю на включенную кнопку (ту, которая играет) вместо остановки моего mp3, он перезагружается. Что я делаю не так с моим jQuery здесь? Я ссылаюсь на свой идентификатор и вызываю функцию для выполнения cell.stop()
, но по какой-то причине jQuery запускает воспроизведение снова, хотя я удалил класс minuetto
из кнопки воспроизведения. Я действительно озадачен. Пожалуйста, помогите?