gpt4 book ai didi

javascript - 如何将按键存储到变量中以重构此代码?

转载 作者:行者123 更新时间:2023-12-03 02:28:56 24 4
gpt4 key购买 nike

我正在尝试制作一架简单的钢琴,以便按键可以播放相应的声音。我在html和音频元素中设置了数据属性,如下所示:

<div class="piano-keys">
<div data-key="65" class="wkey" id="key"></div>
<div data-key="81" class="bkey" id="key></div>
</div>

<audio id="65" data-key="65" src="notes/261-C.mp3"></audio>
<audio id="83" data-key="83" src="notes/293-D.mp3"></audio>

和我的jQuery如下:
 $(document).keyup(function(e){
if(e.keyCode == 65){
var c = document.getElementById('65');
c.play();
c.currentTime = 0;
} else if(e.keyCode == 83){
var c = document.getElementById('83');
cSharp.play();
cSharp.currentTime = 0;
}
});

这显然可行,但是我将需要25个if / else,并且我知道它可以做得更整洁。无需定位单个ID。我试图为它们的按键创建变量,如下所示:
var key = $('.key[data-key="${e.keyCode}"]');

但这显然没有用。如果在阶段之前还没有变得显而易见,我对jquery还是陌生的。

最佳答案

首先,您不能在一个页面上多次使用相同的ID,除了可以做类似的事情

$(document).keyup(function(e){
var key = e.which;
var note =document.getElementById(key);
note.play();
note.currentTime = 0;


})

它将播放所按的相应音频。我不确定您在使用 currentTime做什么,但是您没有在问题中提及它,因此需要适应此操作。

关于javascript - 如何将按键存储到变量中以重构此代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45514145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com