我正在構建一個「鋼琴般」的音樂應用程序,用戶可以點擊某個div(盒子)並播放音符。如何根據用戶的點擊播放某個音頻文件?
我知道我可以通過抓住盒子和音頻文件的所有ID來做到這一點,但我認爲這有一個更簡單和更靈活的方法。
我試着循環遍歷盒子並抓住Ids,但我似乎無法獲取音頻文件的名稱。我有一個想法,我可以得到Id並查看它們是否與音頻的name屬性值匹配並以此方式播放,但我被卡住了。
這裏的示例代碼:
<div id="main">
<div id="box1" class="box"></div>
<div id="box2" class="box"></div>
<div id="box3" class="box"></div>
<div id="box4" class="box"></div>
<div id="box5" class="box"></div>
<div id="box6" class="box"></div>
<div id="box7" class="box"></div>
</div>
<audio id="box1_sound" name="notes">
<source src="audio/d_note.mp3" type="audio/mp3"></source>
</audio>
的JavaScript:
var box1 = document.getElementById('box1');
var box1Note = document.getElementById('box1_sound');
box1.addEventListener('mousedown', function(){
box1Note.currentTime = 0;
box1Note.play();
});
var boxName = document.getElementsByClassName('box');
var notes = document.getElementsByName('notes');
for (var j = 0; j < notes.length; j++) {
var notesVal = notes[j].name;
console.log(notesVal);
}
for (var i = 0; i < boxName.length; i++) {
boxName[i].addEventListener('mousedown', function(){
var boxId = this.id;
console.log(boxId);
});
}
任何幫助將是真棒,謝謝你們!
很高興幫助.. :) – qtgye 2015-02-06 03:27:26