JS音乐播放器暂停按钮功能失效,寻求代码排查帮助
音乐播放器暂停按钮失效问题解决
你代码里的核心问题是在playSong和pauseSong函数内用let重新声明了isPlaying变量——这会创建局部变量,完全覆盖全局的isPlaying状态,导致全局变量永远停留在初始的false值。点击按钮时,判断逻辑始终认为当前未播放,只会一直触发播放操作,永远走不到暂停分支。
修复方案很简单,移除函数内的let声明,直接修改全局的isPlaying变量:
const music = document.querySelector('audio'); const prevBTN = document.getElementById('prev'); const playBTN = document.getElementById('play'); const nextBTN = document.getElementById('next'); // Check if Playing let isPlaying = false; // Play function playSong() { isPlaying = true; // 移除let,直接修改全局状态 playBTN.classList.replace('fa-play', 'fa-pause'); playBTN.setAttribute('title', 'Pause'); music.play(); } // Pause function pauseSong() { isPlaying = false; // 同样移除let playBTN.classList.replace('fa-pause', 'fa-play'); playBTN.setAttribute('title', 'Play'); music.pause(); } // Play or Pause Event Listener playBTN.addEventListener('click', () => (isPlaying ? pauseSong() : playSong()));
修改后,全局的isPlaying会跟随播放/暂停操作正确更新,按钮点击时就能准确触发对应的逻辑了。
内容的提问来源于stack exchange,提问作者Sari Broudy
相关产品推荐
相关产品推荐

