我正在尝试使用jQuery动态地将监听器分配给锚点以在mousedown上播放声音并在mouseup上暂停。这是我的HTML:
<p>Meet
<a class="easter-egg">Buck
<audio class="egg-aud" src="file.mp3">
<source src="file.ogg" />
</audio>
<img class="egg-img" alt="" src="file.jpg" />
</a>.
</p>
我的js:
$( "a.easter-egg" ).mousedown( function() {
$( this ).find( "audio.egg-aud" )[0].play();
});
$( "a.easter-egg" ).mouseup( function() {
var audio = $( this ).find( "audio.egg-aud" )[0];
audio.pause();
audio.currentTime = 0;
});
编辑:在jsfiddle中,我的代码完美无缺,直到我将<p>
包裹在<div class="entry-content">
中,此时它就会中断。我将我网站的一个示例粘贴到jsfiddle,您可以尝试删除该div,并在没有它的情况下查看它。
答案 0 :(得分:0)
您试图设置已动态附加的音频标记的currentTime
。因此,您必须等待音频标签准备好播放。
使用canplay
事件检查音频元素是否已准备好播放。
// When the audio element "can"be"play"ed, fire the function.
audio.addEventListener("canplay", function() {
this.currentTime = 0;
},true);
<video>
标签。希望有所帮助!
答案 1 :(得分:0)