Я работаю над музыкальным проигрывателем, и я считаю, что предотвращение дефолта не работает. Когда я нажимаю игру, все работает нормально. Кнопка переключается на кнопку паузы, и музыка воспроизводится. Однако, когда я нажимаю паузу, страница обновляется. Есть идеи?
Благодарю!
play.on('click', function (e) {
e.preventDefault();
song.play();
$(play).replaceWith('<a class="button gradient" id="pause" href="" title=""></a>');
container.addClass('containerLarge');
cover.addClass('coverLarge');
});
pause.on('click', function (e) {
e.preventDefault();
container.removeClass('containerLarge');
cover.removeClass('coverLarge');
song.pause();
$('#pause').replaceWith('<a class="button gradient" id="play" href="" title=""></a>');
});
Вы заменяете элементы новыми. Обработчики событий привязаны к старым элементам, а не к новым, а ссылки, хранящиеся в play
переменных и pause
будут также старыми отдельными элементами DOM.
Вам нужно оставить только элементы и программно скрыть/показать их, а не полностью удалить их и заменить их другим элементом:
play.on('click', function (e) {
e.preventDefault();
play.hide();
pause.show();
});
$('body').on('click','#pause',function(e){
$('body').on('click','#play',function(e){
Вы не предоставили HTML, но они должны работать.
$('body').on('click','#pause',function(e){