将playSound(e)
添加到addEventListener
时,为什么不必传递参数?如何自动传递事件?
function playSound(e) {
const audio = document.querySelector(`audio[data-key="${e.keyCode}"]`);
const key = document.querySelector(`.key[data-key="${e.keyCode}"]`);
if (!audio) return; //stop the function from running
audio.currentTime = 0; // rewinds to the start
audio.play();
key.classList.add("playing");
}
window.addEventListener('keydown', playSound);
该代码按原样工作
最佳答案
这样考虑:
function addEventListener(event, handler) {
const eventObject = new Event();
switch(event) {
case "keydown":
handler(eventObject);
}
}
显然,这是一个简化的版本,但是您传递的函数由
addEventListener
带参数调用关于javascript - 不必在addEventListener中传递参数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50336888/