JavaScript Events Cheatsheet
š±ļø JavaScript Events Cheatsheet
JavaScript events notify your code when something happens in the browser, enabling interactive and responsive web pages.
ā Adding event listeners ā Common event types ā The event object ā Event propagation ā Event delegation ā Preventing default behavior ā Stopping propagation ā Removing event listeners ā Keyboard events
#javascript #events #dom #browser #webdev #frontend #coding #tips
Adding event listeners
Use addEventListener to attach a function to an event.
const button = document.getElementById("submit");
button.addEventListener("click", () => {
console.log("Button clicked");
});You can also use onevent properties, but addEventListener is preferred because it supports multiple listeners.
button.onclick = () => {
console.log("Clicked");
};Common event types
| Event type | Fires when... |
|---|---|
click | An element is clicked. |
dblclick | An element is double-clicked. |
mouseover | The pointer enters an element. |
mouseout | The pointer leaves an element. |
keydown | A key is pressed down. |
keyup | A key is released. |
submit | A form is submitted. |
change | The value of an input changes. |
input | The value of an input changes live. |
focus | An element receives focus. |
blur | An element loses focus. |
load | A resource finishes loading. |
resize | The viewport is resized. |
scroll | An element is scrolled. |
The event object
The listener receives an event object with useful properties and methods.
document.addEventListener("click", (event) => {
console.log(event.type); // "click"
console.log(event.target); // element that was clicked
console.log(event.clientX); // horizontal click position
console.log(event.clientY); // vertical click position
});Common event object properties.
| Property | Description |
|---|---|
target | The element that triggered the event. |
currentTarget | The element the listener is attached to. |
type | The event type. |
key | The key pressed for keyboard events. |
preventDefault() | Cancels the default action. |
stopPropagation() | Stops event propagation. |
Event propagation
Events travel through the DOM in two phases: bubbling and capturing.
Bubbling is when the event travels from the child to the parent.
const parent = document.getElementById("parent");
const child = document.getElementById("child");
parent.addEventListener("click", () => {
console.log("Parent clicked");
});
child.addEventListener("click", () => {
console.log("Child clicked");
});
// Console logs ā¬ļø
// Child clicked
// Parent clickedCapturing is when the event travels from the parent down to the child element.
Set the third argument of addEventListener to true to listen during the capturing phase.
const parent = document.getElementById("parent");
const child = document.getElementById("child");
parent.addEventListener(
"click",
() => {
console.log("Parent clicked");
},
true,
);
child.addEventListener(
"click",
() => {
console.log("Child clicked");
},
true,
);
// Console logs ā¬ļø
// Parent clicked
// Child clickedEvent delegation
Attach one listener to a parent to handle events from many children.
document.getElementById("list").addEventListener("click", (event) => {
if (event.target.tagName === "LI") {
console.log(event.target.textContent);
}
});This works for dynamically added elements too.
Preventing default behavior
Use preventDefault to stop the browser's default action.
document.querySelector("a").addEventListener("click", (event) => {
event.preventDefault();
console.log("Link click prevented");
});Common use cases include preventing form submissions and link navigation.
document.querySelector("form").addEventListener("submit", (event) => {
event.preventDefault();
// validate and submit with fetch
});Stopping propagation
Use stopPropagation to prevent the event from reaching parent elements.
child.addEventListener("click", (event) => {
event.stopPropagation();
console.log("Child only");
});Removing event listeners
Use removeEventListener to detach a listener.
function handleClick() {
console.log("Clicked");
}
button.addEventListener("click", handleClick);
button.removeEventListener("click", handleClick);Keyboard events
Listen for key presses and inspect the key property.
document.addEventListener("keydown", (event) => {
if (event.key === "Enter") {
console.log("Enter pressed");
}
});Useful modifier properties.
document.addEventListener("keydown", (event) => {
if (event.ctrlKey && event.key === "s") {
event.preventDefault();
console.log("Save shortcut");
}
});Full-Stack AI Developer Roadmap
From HTML & CSS to working with AI models, all in one structured roadmap.