我已经有了这个 jquery 代码和 html,可以在英语培训网站上正常工作。
$(document).ready(function() {
$("p").hover(
function() {
$(this).css({"color": "purple", "font-weight" : "bolder"});
},
function() {
$(this).css({"color": "black", "font-weight" : ""});
}
);
$("p").click(function (event) {
var element = $(this);
var elementID = event.target.id;
var oggVar = (elementID +".ogg");
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', oggVar);
audioElement.load();
audioElement.addEventListener("load", function() {
audioElement.play();
}, true);
audioElement.play();
});
});
<div>
<p id="one"> this is the first paragraph</p>
....
<p id="four"> this is the fourth paragraph</p>
....
</div>
问题是,如果在播放音频文件(或双击)时单击文本,则第二个文件(或同一文件)开始播放。所以我最终会同时播放两个文件。我需要阻止这种情况。我认为“结束”事件是相关的,但是,尽管查看了一些示例,我还是看不出如何检测文件是否正在播放并等到它完成后再允许第二个文件开始(甚至阻止它播放)根本没有)。任何帮助将非常感激 :)
您可以为以下内容添加事件侦听器结束并播放事件。另外,为什么要通过 JavaScript 创建音频标签?我只想创建一个空的隐藏音频标签:
<audio id='myAudio' autoplay='autoplay'></audio>
您有两个选择:
- 当音频播放/停止时禁用/启用按钮/链接(恕我直言,首选)
- 正在播放时忽略点击
然后向其中添加两个事件监听器:
var playing = false;
$('#myAudio').on('playing', function() {
playing = true;
// disable button/link
});
$('#myAudio').on('ended', function() {
playing = false;
// enable button/link
});
$("p").click(function (event) {
if(!playing) {
var element = $(this);
var elementID = event.target.id;
var oggVar = (elementID +".ogg");
var audioElement = $('#myAudio')[0];
audioElement.setAttribute('src', oggVar);
audioElement.play();
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)