javascript - audio.play() 在现有函数中工作,但不是单独的函数
问题描述
单击按钮时,我正在尝试播放声音。这是我尝试使用的功能:
function sound(){
var audio = new Audio("button.wav");
audio.play();
}
然后我在文件的底部有这个:
document.getElementById("convert").onclick = function() { sound(); };
我知道代码可以工作,因为如果我将两行代码放在声音函数中,另一个函数对按钮单击执行计算,声音就会播放。为什么代码仅在添加到现有函数时才有效,而不是作为自己的?
解决方案
我假设您指的是“它自己的”:
document.getElementById("convert").onclick = sound();
在这种情况下,您将返回的值分配给元素sound()
的onclick
属性。如果您想sound
在单击按钮时被调用,请删除括号:
document.getElementById("convert").onclick = sound;
演示:
function sound(){
var audio = new Audio("https://interactive-examples.mdn.mozilla.net/media/cc0-audio/t-rex-roar.mp3");
audio.play();
}
document.getElementById("convert").onclick = sound;
<button id="convert">Play</button>