Episode 41 of 46

The onclick Event in JavaScript

Deep dive into click events — the most common user interaction on the web.

The click event is the most common event in web development. Let's explore it in depth.

addEventListener (Recommended)

let btn = document.querySelector("#myBtn");

btn.addEventListener("click", function() {
    alert("Button clicked!");
});

// Multiple listeners on the same element
btn.addEventListener("click", function() {
    console.log("Also logged!");
});

onclick Property

let btn = document.querySelector("#myBtn");

btn.onclick = function() {
    alert("Clicked!");
};

// Warning: this REPLACES the previous handler
btn.onclick = function() {
    alert("Only this one runs now!");
};

Practical Examples

// Toggle visibility
let toggleBtn = document.querySelector("#toggle");
let content = document.querySelector(".content");

toggleBtn.addEventListener("click", function() {
    if (content.style.display === "none") {
        content.style.display = "block";
        toggleBtn.textContent = "Hide";
    } else {
        content.style.display = "none";
        toggleBtn.textContent = "Show";
    }
});
// Counter
let count = 0;
let display = document.querySelector("#count");
let incrementBtn = document.querySelector("#increment");
let decrementBtn = document.querySelector("#decrement");

incrementBtn.addEventListener("click", function() {
    count++;
    display.textContent = count;
});

decrementBtn.addEventListener("click", function() {
    count--;
    display.textContent = count;
});

Event Delegation

// Instead of adding click events to every list item...
let list = document.querySelector("ul");

list.addEventListener("click", function(e) {
    if (e.target.tagName === "LI") {
        e.target.classList.toggle("completed");
    }
});

Event delegation is more efficient — one listener on the parent instead of many on children.