如何更改此功能,以便每次单击只能播放一首随机歌曲?(JavaScript)

如何更改此功能,以便每次单击只能播放一首随机歌曲?(JavaScript),javascript,html,css,audio,audio-player,Javascript,Html,Css,Audio,Audio Player,我基本上是使用HTML、CSS和香草JavaScript构建一个音乐生成器/播放器应用程序,每当用户单击特定音乐类型的特定div时,就会播放该类型的新歌。为了生成随机歌曲,我创建了以下JS函数: const randomizeSongs = playlist => { let song = playlist[Math.floor(Math.random() * playlist.length)]; song.play(); } 我遇到的问题是当我尝试使用以下代码时:

我基本上是使用HTML、CSS和香草JavaScript构建一个音乐生成器/播放器应用程序,每当用户单击特定音乐类型的特定div时,就会播放该类型的新歌。为了生成随机歌曲,我创建了以下JS函数:

const randomizeSongs = playlist => {
    let song = playlist[Math.floor(Math.random() * playlist.length)];
    song.play();
  }
我遇到的问题是当我尝试使用以下代码时:

const pop = document.querySelector(".pop") // Div containing audio elements
pop.addEventListener("click", (e) => {
      const popSongs = document.querySelectorAll(".pop audio");
      randomizeSongs(popSongs);
})

该函数会像我想的那样,每次点击都会生成一首新歌,但之前点击生成的歌曲并没有停止播放。如何修改randomizeSongs函数,以便每次新单击只能播放一首随机歌曲?

我想您正在寻找
暂停
()

还没有尝试过这个,但它看起来像:

let previousSong;
const randomizeSongs = playlist => {
    if (previousSong) {
        previousSong.pause();
    }
    let song = playlist[Math.floor(Math.random() * playlist.length)];
    song.play();
    previousSong = song;
}

没关系,它确实有用!我忘了添加“previousSong=song;”的部分。非常感谢你!