DOM and events: Class toggles
classList.toggle alternates membership unless given an explicit force boolean.
Current edit
Understand the pattern
classList.toggle alternates membership unless given an explicit force boolean.
classList.toggle alternates membership unless given an explicit force boolean.
Misconceptions to reject
- A string containing code executes automatically when it is assigned.
- A successful element lookup guarantees that the rest of an event handler is correct.
This is a code-inspection lab, not a full JavaScript runtime.
Worked example and expected result
const button = document.querySelector("#start");
const panel = document.querySelector("#panel");
if (button && panel) { button.addEventListener("click", () => { panel.classList.toggle("expanded"); }); }classList.toggle alternates membership unless given an explicit force boolean.
Explain it
Apply it elsewhere
Keep the momentum.
Complete the lab, then explain and apply the pattern.
Next: DOM and events: Data attributesTry an incident drillAnonymous lesson and mastery progress lasts for this session. Sign in to keep synced lesson XP between sessions; mastery stays device-local. No speed bonus, lost lives, or hint penalties.
Keep learning
- 01DOM and events: Class additionsclassList.add adds a class without replacing unrelated classes already on the element.Practice
- 02DOM and events: Data attributesdataset exposes data-* values as strings; data-lesson-id becomes dataset.lessonId.Practice
- 03DOM and events: Keyboard-friendly buttonsA native button already supports keyboard activation. A click listener can serve mouse, touch, and keyboard users.Practice