javascript - 如何停止onended函数onclick
问题描述
我有一个 onclick shuffle 功能,每次音频结束时都会执行。它工作得很好,但我想制作另一个按钮来停止它的执行。
请帮忙举个例子
完整代码:
<button onclick="test();stats();auto()">Shuffle</button>
<button id="abort" onclick='exitauto()'>Stop Shuffle</button>
<script>
function exitauto(){
}
</script>
<script>
function stats() {
if(document.getElementById("audio").src == "test.mp3")
{
document.getElementById("p2").innerHTML = "some song";
document.getElementById("playerimg").src="img.png";
};
}
</script>
<script>
function auto(){
var aud = document.getElementById("audio");
aud.onended = function shuf() {
test();
stats();
};
}
</script>
<script>
function test() {
var values = ['test.mp3',
],
valueToUse = values[Math.floor(Math.random() * values.length)];
document.getElementById("audio").pause();
document.getElementById("audio").setAttribute('src', valueToUse);
document.getElementById("audio").load();
document.getElementById("audio").play();
};
</script>
解决方案
您可以添加一个全局变量,用于决定是否在 auto 函数中调用 test() 和 stats() 函数。您可以在单击开始时将该变量设置为 true,在单击停止时将该变量设置为 false
推荐阅读
- android - 使用 FrameLayout 时 TextInputLayout 文本标题消失了
- python - 合并请求中的冗余参数
- node.js - Express 消息 '!=' 在 Pug 中引发错误
- c# - 如何使用 Polly 对任意“失败”条件进行重试和瞬态故障处理
- javascript - Loop Childens 自定义 Mongodb
- php - 我的 php 水印功能不适用于 png 图像
- vb.net - 在某些 PC 上无法解析主机名错误
- node.js - 护照未登录 | 因战略而思考
- python - 我对 cv2.findContours 有错误(...)
- ios - Swift 4 - 使用哪种类型的数组 - 将 JSON 响应解析为数组