target
Actual element where event occurred
Events represent actions or occurrences in the browser such as clicks, typing, scrolling, or loading.
JavaScript listens to these events and executes code, enabling interactive applications.
const btn = document.querySelector("#btn");
function handleClick() { console.log("Clicked");}
btn.addEventListener("click", handleClick);btn.addEventListener("click", handleClick, { once: true, capture: false, passive: true});once → runs only oncecapture → runs in capture phasepassive → improves scroll performancebtn.removeEventListener("click", handleClick);input.addEventListener("input", (event) => { console.log(event.target.value); console.log(event.type);});target
Actual element where event occurred
currentTarget
Element where listener is attached
type
Type of event (click, input, etc.)
parent.addEventListener("click", (e) => { console.log(e.target); // actual clicked element console.log(e.currentTarget); // parent});Mouse
click, dblclick, mousemove
Keyboard
keydown, keyup
Form
submit, input, change
Window
load, resize, scroll
form.addEventListener("submit", (e) => { e.preventDefault();});
child.addEventListener("click", (e) => { e.stopPropagation();});list.addEventListener("click", (e) => { if (e.target.matches("li")) { console.log(e.target.textContent); }});setTimeout(() => { console.log("Runs once");}, 2000);const id = setInterval(() => { console.log("Repeating");}, 1000);
clearInterval(id);form.addEventListener("submit", (e) => { e.preventDefault();
const data = new FormData(form); console.log(data.get("email"));});btn.addEventListener("click", async () => { btn.disabled = true;
await new Promise(r => setTimeout(r, 1000));
btn.disabled = false;});element.removeEventListener("click", handler);clearInterval(timerId);addEventListener, not inline handlers