首页 > 解决方案 > 如何停止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>

标签: javascriptjqueryfunctiononclick

解决方案


您可以添加一个全局变量,用于决定是否在 auto 函数中调用 test() 和 stats() 函数。您可以在单击开始时将该变量设置为 true,在单击停止时将该变量设置为 false


推荐阅读