Tell us what’s happening:
Step 12 of this workshop is BROKEN: I’ve even copied the code from Step 13 (which would be the completed code from Step 12) back into this step and it still fails. I also cross-checked the code from Step 13 with my own const and addEventListener() declarations and they were exactly the same.
Your code so far
<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Emoji Reactor</title>
<link rel="stylesheet" href="./styles.css" />
</head>
<body>
<main>
<h1 class="title">How are you feeling today?</h1>
<p class="description">
Click on the buttons below to rate your emotions.
</p>
<div class="btn-container">
<button id="happy-btn" class="emoji-btn" aria-label="Happy face emoji">
<span role="img" aria-hidden="true">😊</span>
<span class="count">0/10</span>
</button>
<buttonvid="confused-btn"vclass="emoji-btn"varia-label="Confused face emoji">
<span role="img" aria-hidden="true">😕</span>
<span class="count">0/10</span>
</button>
<button id="sad-btn" class="emoji-btn" aria-label="Angry face emoji">
<span role="img" aria-hidden="true">😠</span>
<span class="count">0/10</span>
</button>
<button
id="loving-btn"
class="emoji-btn"
aria-label="Loving face emoji"
>
<span role="img" aria-hidden="true">😍</span>
<span class="count">0/10</span>
</button>
</div>
</main>
<script src="./script.js"></script>
</body>
</html>
/* file: styles.css */
*,
*::before,
*::after {
box-sizing: border-box;
margin: 0;
padding: 0;
}
:root {
--light-grey: #efefef;
--white: #ffffff;
--very-dark-blue: #0a0a23;
--light-purple: #a78bfa;
--very-light-purple: #c4b5fd;
--purple: #8b5cf6;
}
body {
background-color: var(--very-dark-blue);
color: var(--light-grey);
font-family: sans-serif;
}
main {
text-align: center;
padding: 10px;
}
.btn-container,
button {
display: flex;
justify-content: space-evenly;
align-items: center;
}
.btn-container {
flex-direction: column;
}
.emoji-btn {
width: 70%;
cursor: pointer;
color: var(--white);
background-color: var(--light-purple);
background-image: linear-gradient(
to bottom,
var(--very-light-purple),
var(--light-purple)
);
border: 3px solid var(--purple);
border-radius: 8px;
padding: 10px;
font-size: 1.5rem;
margin: 10px 0;
transition: background-color 0.3s ease, transform 0.2s ease;
}
@media (min-width: 768px) {
.emoji-btn {
width: 30%;
}
}
.emoji-btn:hover {
background-color: var(--purple);
background-image: none;
}
.title {
margin-top: 15px;
font-size: 2rem;
}
.description {
font-size: 1.4rem;
margin: 20px 0;
}
/* file: script.js */
// User Editable Region
function updateCount(btn) {
const countEl = btn.querySelector(".count");
let currCount = +countEl.textContent.split("/")[0];
if (currCount === 10) return;
currCount++;
countEl.textContent = `${currCount}/10`;
}
const happyBtn = document.querySelector("#happy-btn");
const confusedBtn = document.querySelector("#confused-btn");
const sadBtn = document.querySelector("#sad-btn");
const lovingBtn = document.querySelector("#loving-btn");
happyBtn.addEventListener("click", () => updateCount(happyBtn));
confusedBtn.addEventListener("click", () => updateCount(confusedBtn));
sadBtn.addEventListener("click", () => updateCount(sadBtn));
lovingBtn.addEventListener("click", () => updateCount(lovingBtn));
// User Editable Region
Your browser information:
User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36
Challenge Information:
Build an Emoji Reactor - Step 12