【发布时间】:2015-07-28 20:39:39
【问题描述】:
我正在codepen上创建一个虚拟钢琴作为练习,并试图找到一种方法来编写一个jQuery函数,该函数将根据单击的键播放不同的声音。我将所有键创建为有序列表中的列表项,并根据它们的注释给它们每个 id。我已经弄清楚了如何根据按下的音符来播放声音,而且我在技术上可以复制每个音符的代码,但我想练习让我的代码更紧凑。这是我目前所拥有的:
$('li')
.mousedown(function(){
$('#noteC')[0].play();
})
.mouseup(function(){
$('#noteC')[0].pause();
$('#noteC').prop('currentTime',0);
})
我尝试在脚本中添加var c = $('#noteC')[0] 和<li class="ivory" id="C" data-note='c'>C</li>。我认为可能有某种方法可以通过将每个声音链接到其列表项来触发它,这样当单击列表项时,JS 就知道要播放哪个声音。我怎样才能做到这一点?
【问题讨论】:
-
我还在 HTML 中添加了
- C
。由于某种原因被切断了问题 -
如果我理解正确,在你的处理程序内部你可以做
document.getElementById('note' + this.id).play() / .pause()
标签: javascript jquery html css dry