In the previous article, we learned about the DOM (Document Object Model), which allows JavaScript to access and modify HTML elements. However, modern websites do much more than simply display content—they respond to user actions.
For example:
Clicking a button
Typing in a text box
Moving the mouse
Submitting a form
Pressing a keyboard key
These actions are known as Events.
JavaScript uses events to create interactive and responsive web applications.
In this article, we will learn:
What events are
Event handling
Common JavaScript events
Event listeners
Mouse events
Keyboard events
Form events
Event bubbling
Event propagation
Practical examples
What is an Event?
An event is an action or occurrence that happens in a webpage.
Examples:
User clicks a button
User presses a key
User moves the mouse
User submits a form
JavaScript can detect these actions and respond accordingly.
Real-Life Example
Think of a doorbell.
Button Press
↓
Doorbell Rings
Similarly:
Button Click
↓
JavaScript Executes
Event Handling
The process of responding to an event is called Event Handling.
Example:
<button onclick="showMessage()">
Click Me
</button>
function showMessage()
{
alert("Button Clicked");
}
When the button is clicked:
Event Occurs
↓
Function Executes
Types of Events
JavaScript supports many events.
| Event Type | Example |
|---|---|
| Mouse Events | Click, Hover |
| Keyboard Events | Key Press |
| Form Events | Submit |
| Window Events | Load, Resize |
| Focus Events | Focus, Blur |
Inline Event Handling
Events can be written directly inside HTML.
Example:
<button onclick="alert('Hello')">
Click Me
</button>
Output:
Popup appears
Why Inline Events Are Not Preferred
For small examples:
onclick=""
is acceptable.
For large projects:
Hard to maintain
Mixes HTML and JavaScript
Modern development prefers Event Listeners.
Event Listener
An Event Listener waits for an event and executes a function.
Syntax:
element.addEventListener(
event,
function
);
Example
HTML:
<button id="btn">
Click Me
</button>
JavaScript:
document
.getElementById("btn")
.addEventListener(
"click",
function()
{
alert(
"Button Clicked"
);
}
);
Advantages of Event Listeners
Cleaner code
Better organization
Multiple events can be attached
Professional approach
Click Event
The most common event.
Example
HTML:
<button id="btn">
Click
</button>
JavaScript:
document
.getElementById("btn")
.addEventListener(
"click",
function()
{
document.write(
"Button Pressed"
);
}
);
Output
After clicking:
Button Pressed
Double Click Event
Event:
dblclick
Example:
element.addEventListener(
"dblclick",
function()
{
alert(
"Double Clicked"
);
}
);
Mouse Events
JavaScript can detect mouse movements.
Common Mouse Events
| Event | Description |
|---|---|
| click | Mouse click |
| dblclick | Double click |
| mouseover | Mouse enters |
| mouseout | Mouse leaves |
| mousemove | Mouse moves |
Mouse Over Example
HTML:
<h1 id="title">
Move Mouse Here
</h1>
JavaScript:
document
.getElementById("title")
.addEventListener(
"mouseover",
function()
{
this.style.color =
"red";
}
);
Output
When mouse enters:
Text becomes red
Mouse Out Example
document
.getElementById("title")
.addEventListener(
"mouseout",
function()
{
this.style.color =
"black";
}
);
Text returns to black.
Keyboard Events
Keyboard events occur when keys are pressed.
Common Keyboard Events
| Event | Description |
|---|---|
| keydown | Key pressed |
| keyup | Key released |
| keypress | Key typed |
Example
HTML:
<input
type="text"
id="name">
JavaScript:
document
.getElementById("name")
.addEventListener(
"keydown",
function()
{
console.log(
"Key Pressed"
);
}
);
Output
Every key press produces:
Key Pressed
in browser console.
Display Typed Text
HTML:
<input
type="text"
id="name">
JavaScript:
document
.getElementById("name")
.addEventListener(
"keyup",
function()
{
console.log(
this.value
);
}
);
Example
Typing:
Rahul
Console displays:
R
Ra
Rah
Rahu
Rahul
Form Events
Forms generate events during interaction.
Common Form Events
| Event | Description |
|---|---|
| submit | Form submitted |
| focus | Input selected |
| blur | Input loses focus |
| change | Value changes |
Submit Event
HTML:
<form id="myForm">
<input type="text">
<button>
Submit
</button>
</form>
JavaScript:
document
.getElementById("myForm")
.addEventListener(
"submit",
function()
{
alert(
"Form Submitted"
);
}
);
Focus Event
Triggered when an input field is selected.
Example:
document
.getElementById("name")
.addEventListener(
"focus",
function()
{
this.style.backgroundColor =
"yellow";
}
);
Output
Input box becomes yellow.
Blur Event
Triggered when input loses focus.
Example:
document
.getElementById("name")
.addEventListener(
"blur",
function()
{
this.style.backgroundColor =
"white";
}
);
Window Events
Window-related events.
Common Window Events
| Event | Description |
|---|---|
| load | Page loaded |
| resize | Window resized |
| scroll | Page scrolled |
Load Event
window.addEventListener(
"load",
function()
{
alert(
"Page Loaded"
);
}
);
Runs when webpage loads.
Resize Event
window.addEventListener(
"resize",
function()
{
console.log(
"Window Resized"
);
}
);
Event Object
JavaScript automatically creates an event object.
Example:
element.addEventListener(
"click",
function(event)
{
console.log(event);
}
);
Contains information about the event.
Example
document
.addEventListener(
"click",
function(event)
{
console.log(
event.target
);
}
);
Displays clicked element.
Event Bubbling
Events move upward through the DOM hierarchy.
Example Structure:
Button
inside Div
inside Body
When button clicked:
Button
↓
Div
↓
Body
This process is called bubbling.
Example
HTML:
<div id="parent">
<button id="child">
Click
</button>
</div>
JavaScript:
document
.getElementById("parent")
.addEventListener(
"click",
function()
{
console.log("Parent");
}
);
document
.getElementById("child")
.addEventListener(
"click",
function()
{
console.log("Child");
}
);
Output:
Child
Parent
stopPropagation()
Stops bubbling.
Example:
event.stopPropagation();
Example
document
.getElementById("child")
.addEventListener(
"click",
function(event)
{
event.stopPropagation();
console.log(
"Child"
);
}
);
Output:
Child
Only child executes.
Practical Project – Change Background Color
HTML:
<button id="btn">
Change Color
</button>
JavaScript:
document
.getElementById("btn")
.addEventListener(
"click",
function()
{
document.body.style.backgroundColor =
"lightblue";
}
);
Output
Clicking button changes page color.
Practical Project – Character Counter
HTML:
<textarea id="text">
</textarea>
<p id="count">
0
</p>
JavaScript:
document
.getElementById("text")
.addEventListener(
"keyup",
function()
{
document
.getElementById("count")
.innerHTML =
this.value.length;
}
);
Output
Typing:
Hello
Counter displays:
5
Complete Program
<!DOCTYPE html>
<html>
<body>
<button id="btn">
Click Me
</button>
<script>
document
.getElementById("btn")
.addEventListener(
"click",
function()
{
alert(
"Button Clicked"
);
}
);
</script>
</body>
</html>
Real-Life Applications
Events are used in:
Login systems
Online shopping carts
Games
Social media platforms
Banking websites
Chat applications
Platforms like Facebook, YouTube, and Amazon use millions of event-driven interactions every second.
Common Mistakes Beginners Make
Forgetting Event Name
Wrong:
addEventListener(
function()
{
}
);
Correct:
addEventListener(
"click",
function()
{
}
);
Wrong Element ID
getElementById(
"button"
)
must match actual HTML ID.
Not Using stopPropagation()
Can cause unexpected bubbling.
Advantages of Events
Interactive webpages
Dynamic user interfaces
Better user experience
Real-time responses
Essential for modern web applications
Conclusion
Events are the foundation of interactive web development. They allow JavaScript to respond to user actions and create dynamic experiences.
Comments
Post a Comment