我正在嘗試使用按鈕來暫停音頻元素,該功能除該alert()功能外都可以正常作業。警報只是彈出并永遠留在網站的頂部。
這是我的 HTML 代碼
<button id="threeSecTimer">3s</button>
<figcaption>Fire</figcaption>
<audio controls loop>
<source src="xxx" type="audio/mpeg" />
Your Browser doesn't support the audio
</audio>
<figcaption>Forest</figcaption>
<audio controls loop>
<source src="xxx" type="audio/wav" />
Your Browser doesn't support the audio
</audio>
這是js
var threeSecTimer = document.getElementById("threeSecTimer");
var allMusic = document.getElementsByTagName("audio");
function pause3s(e) {
setTimeout(function () {
for (var i = 0; i < allMusic.length; i ) {
if ((allMusic[i] = e.target)) {
allMusic[i].pause();
allMusic[i].currentTime = 0;
alert("time is up!");
}
}
}, 3000);
}
threeSecTimer.addEventListener("click", pause3s);```
uj5u.com熱心網友回復:
您=在 if 條件中錯過了一個,請更改(allMusic[i] = e.target)為(allMusic[i] == e.target)
uj5u.com熱心網友回復:
您的條件(allMusic[i] == e.target)永遠不會成立,因為 e.target 是針對 3s 按鈕的,而 allMusic[i] 是音頻控制元件。那是假設您將單個 = 更改為 ==,否則條件將始終為真,這也不是您想要的,但會導致警報按鈕彈出兩次,每個音頻控制元件一次。當警報被點擊時它應該消失,至少當我嘗試你的代碼時它對我有用。
也許您可以檢查HTML5 檢查音頻是否正在播放?定位正在播放的音頻。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/385908.html
標籤:javascript 循环 警报
上一篇:進行多條件求和的回圈
