由于某种原因,我的函数中的 setTimeOut
变量不起作用。我尝试了几种不同的策略,但没有一个有效。基本上,我试图在音频播放之前设置延迟。下面是我的 JS 和 HTML 代码。
function song(musicfile) {
$('#result').html("<audio autoplay=\"true\"><source src=" + musicfile + " type=\"audio/mpeg\" /></audio>");
setTimeout(song, 10000);
}
<img class="playbutton1 center-block" src="play.png" onclick="song('pretender.m4a');">
最佳答案
当然没有延迟。有人点击图片,你立即注入(inject)<audio>
元素,然后设置延迟。
您需要的是setTimeout(function_that_injects_the_element, 10000)
.
function song(musicfile) {
setTimeout(function() {
$('#result').html("<audio autoplay=\"true\"><source src=" + musicfile + " type=\"audio/mpeg\" /></audio>");
}, 10000);
}
我可能建议还删除任何现有的音频元素,或者至少在可能的情况下停止它们。
关于javascript - setTimeOut 在函数中未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167053/