Skip to content

Latest commit

 

History

History
87 lines (58 loc) · 2.83 KB

module-3.3-event-handling-and-delegation.md

File metadata and controls

87 lines (58 loc) · 2.83 KB

3.3. Event Handling and Delegation

Event handling is a crucial part of web development, allowing you to create interactive and responsive web pages. Event delegation is a technique that simplifies event handling for dynamic and large web pages.

Event Listeners

In JavaScript, you can use event listeners to respond to various user interactions, such as clicks, mouse movements, keypresses, and more.

Example:

const button = document.getElementById('myButton');

// Add a click event listener
button.addEventListener('click', function() {
  console.log('Button clicked!');
});

In this example, we add a click event listener to a button element. When the button is clicked, the provided function is executed.

Event Bubbling and Delegation

Event delegation is a technique where you attach a single event listener to a common ancestor of multiple elements instead of attaching individual listeners to each element. This simplifies event handling for dynamic content or large lists.

Example:

<ul id="myList">
  <li>Item 1</li>
  <li>Item 2</li>
  <li>Item 3</li>
</ul>
const list = document.getElementById('myList');

// Add a single event listener to the list
list.addEventListener('click', function(event) {
  if (event.target.tagName === 'LI') {
    console.log(`Clicked on: ${event.target.textContent}`);
  }
});

In this example, we add a click event listener to the ul element. When an li element is clicked, the event bubbles up to the ul, where we check the event.target to identify which li was clicked.

Preventing Default Actions

You can use event listeners to prevent default actions of certain events, such as form submissions or link clicks.

Example:

const link = document.getElementById('myLink');

link.addEventListener('click', function(event) {
  event.preventDefault();
  console.log('Link click prevented.');
});

In this example, we prevent the default behavior of a link click, ensuring that the browser doesn't navigate to a new page.

Event Object

The event object provides information about the event, including the target element and event-specific data.

Example:

const input = document.getElementById('myInput');

input.addEventListener('keyup', function(event) {
  console.log(`Key pressed: ${event.key}`);
});

In this example, we access the event.key property to log the key pressed in an input field.

Benefits

  • Event handling and delegation allow you to create interactive and responsive web pages.
  • Event delegation simplifies event handling for dynamic content, reducing the number of event listeners and improving performance.

Understanding event handling and delegation is crucial for creating web applications that respond to user interactions and provide a smooth and engaging user experience.