JavaScript Events

Making web pages interactive with user actions

⚡ What are JavaScript Events?

Events are actions that happen in the browser - like clicking a button, typing in a text field, or loading a page. JavaScript can "listen" for these events and respond to them.


// Listen for a button click
button.addEventListener('click', function() {
    alert('Button was clicked!');
});
                                    

Common Event Types

🖱️

Mouse Events

User interactions with mouse

click mouseover mouseout
⌨️

Keyboard Events

User interactions with keyboard

keydown keyup keypress
📝

Form Events

Form and input interactions

submit change focus
🌐

Window Events

Browser window interactions

load resize scroll

🔹 Click Events

The most common event - responding to button clicks:

<!-- HTML -->
<button id="myButton">Click Me!</button>
<p id="message"></p>

<script>
// JavaScript
let button = document.getElementById('myButton');
let message = document.getElementById('message');

button.addEventListener('click', function() {
    message.textContent = 'Button was clicked!';
    message.style.color = 'green';
});
</script>

Output:

🔹 Mouse Events

Respond to different mouse interactions:

<!-- HTML -->
<div id="mouseBox" style="width: 200px; height: 100px; background: lightblue; padding: 20px;">
    Hover over me!
</div>

<script>
let box = document.getElementById('mouseBox');

// Mouse enters the box
box.addEventListener('mouseover', function() {
    box.style.background = 'lightgreen';
    box.textContent = 'Mouse is over me!';
});

// Mouse leaves the box
box.addEventListener('mouseout', function() {
    box.style.background = 'lightblue';
    box.textContent = 'Hover over me!';
});
</script>

Output:

Hover over me!

🔹 Keyboard Events

Respond to keyboard input:

<!-- HTML -->
<input type="text" id="textInput" placeholder="Type something...">
<p id="keyInfo"></p>

<script>
let input = document.getElementById('textInput');
let info = document.getElementById('keyInfo');

input.addEventListener('keyup', function(event) {
    info.textContent = `You typed: "${input.value}" (Key: ${event.key})`;
});
</script>

Output:

🔹 Form Events

Handle form submissions and input changes:

<!-- HTML -->
<form id="myForm">
    <input type="text" id="nameInput" placeholder="Enter your name" required>
    <button type="submit">Submit</button>
</form>
<p id="formResult"></p>

<script>
let form = document.getElementById('myForm');
let result = document.getElementById('formResult');

form.addEventListener('submit', function(event) {
    event.preventDefault(); // Prevent page reload
    let name = document.getElementById('nameInput').value;
    result.textContent = `Hello, ${name}! Form submitted successfully.`;
    result.style.color = 'green';
});
</script>

Output:

🔹 Event Object

Events provide information about what happened:

Common Event Properties:

  • event.target: The element that triggered the event
  • event.type: The type of event (click, keyup, etc.)
  • event.key: The key that was pressed (for keyboard events)
  • event.preventDefault(): Stops the default action
button.addEventListener('click', function(event) {
    console.log('Event type:', event.type);
    console.log('Target element:', event.target);
    console.log('Click coordinates:', event.clientX, event.clientY);
});

🧠 Test Your Knowledge

Which method is used to listen for events in JavaScript?