【发布时间】:2014-09-20 23:52:01
【问题描述】:
抱歉标题令人困惑,但我有以下问题。我正在开发一个人们可以按下链接并播放歌曲的网站,但在有多个链接(用于播放歌曲)的页面中,用户可以按下所有链接并且所有歌曲同时开始播放。因此,这使得当前选择的歌曲难以听到。
所以,我想做的是,在按下新链接时取消/停止最后播放的歌曲。这是我的代码。
<div class='content'>
click <a href="javascript:play_wav('h');" class='h play-audio'> here </a>
to play the song
</div>
function play_wav(audio_name)
{
var src = document.querySelector('.'+audio_name).innerHTML =
"<audio src='audio/"+classs+".wav' class='audio_"+audio_name+"'>";
document.querySelector('.audio_'+audio_name).play();
}
不要介意质量不好,但是正如你所看到的,当链接被按下时,DOM 集成了一个<audio src='audio/foo.wav' class='audio_foo"'>
然后脚本找到audio_foo 类并播放歌曲。
但是当另一个链接被按下时,我如何将 DOM 重置为其原始状态或只是阻止它播放以前开始的歌曲?
【问题讨论】:
-
document.querySelector('.audio_'+audio_name).stop()? -
然后改写问题标题。与问题内容无关。
-
@MelanciaUK 但是,这只会停止您正在单击的当前链接。不是正在播放的音频。
-
我的意思是有一种方法可以停止播放。这是
.stop()方法。您需要制定脚本逻辑以跟踪正在播放的内容。 -
你会这样做 -> jsfiddle.net/F5mMr/1
标签: javascript dom javascript-events