I'm working on Angela Yu's course on udemy, Drum Kit project
In that JS file she uses var drum_note = this.innerHTML;
inside of the anonymous function that's passed to addEventListener()
as a listener.
I needed to know how that this
works in this case, I knew the concepts like its used to point an Object, but how exactly it points towards the button.
My index.html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Drum Kit</title>
<link rel="stylesheet" href="styles.css">
<link href="https://fonts.googleapis.com/css?family=Arvo" rel="stylesheet">
</head>
<body>
<h1 id="title">Drum Kit</h1>
<div class="set">
<button class="w drum">w</button>
<button class="a drum">a</button>
<button class="s drum">s</button>
<button class="d drum">d</button>
<button class="j drum">j</button>
<button class="k drum">k</button>
<button class="l drum">l</button>
</div>
<iframe src="https://open.spotify.com/embed/album/1CsEvbpeEVcek0pxt8SIv4" width="300" height="380" frameborder="0" allowtransparency="true" allow="encrypted-media"></iframe>
<footer>
Made with ❤️ in London.
</footer>
<script src="index.js" charset="utf-8"></script>
</body>
</html>
My Index.js
buttons = document.querySelectorAll(".drum");
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener("click", function() {
var drum_note = this.innerHTML;
switch (drum_note) {
case "w":
var tom1 = new Audio("sounds/tom-1.mp3");
tom1.play();
break;
case "a":
var tom2 = new Audio("sounds/tom-2.mp3");
tom2.play();
break;
case "s":
var tom3 = new Audio("sounds/tom-3.mp3");
tom3.play();
break;
case "d":
var tom4 = new Audio("sounds/tom-4.mp3");
tom4.play();
break;
case "j":
var kick_Bass = new Audio("sounds/kick-bass.mp3");
kick_Bass.play();
break;
case "k":
var crash = new Audio("sounds/crash.mp3");
crash.play();
break;
case "l":
var snare = new Audio("sounds/snare.mp3");
snare.play();
break;
default:
}
})
}