【发布时间】:2017-06-01 21:43:43
【问题描述】:
$(document).ready(function()
{
const howlerList = {};
for (var i = sounds.length - 1; i >= 0; i--)
{
howlerList[sounds[i]] = new Howl({src: ["/sounds/" + sounds[i] + ".mp3"]});
$("#" + sounds[i]).click(function()
{
howlerList[$(this).attr("id")].play();
});
};
});
这是我的代码。声音存储在名为 sound 的文件夹中,其 ID 位于 JSON 文件中。
我正在尝试在按下新按钮时停止所有当前播放的声音。
更改为以下代码将在单击相同按钮时停止并重新启动声音。但如果我点击其他按钮,则会同时播放多个声音。
$("#" + sounds[i]).click(function()
{
howlerList[$(this).attr("id")].stop();
howlerList[$(this).attr("id")].play();
});
无论按下哪个按钮,我都希望它一次只播放一种声音。有什么建议吗?
谢谢。
【问题讨论】:
-
在播放他们点击的特定元素之前,您是否尝试过遍历所有 howlerList 元素并停止()它们?
-
不,我没有,这是一个很好的建议,但是亚当在下面的回答有效。
标签: jquery