JavaScript
// Method 1: Inline event handler (not recommended)
// <button onclick="handleClick()">Click</button>
// Method 2: addEventListener (recommended)
const button = document.getElementById('myButton');
button.addEventListener('click', function(event) {
console.log('Button clicked!');
console.log('Event:', event);
console.log('Target:', event.target);
});
// Method 3: Named function
function handleClick(event) {
console.log('Clicked!', event.target);
}
button.addEventListener('click', handleClick);
// Method 4: Arrow function
button.addEventListener('click', (e) => {
console.log('Arrow function handler');
});
// Method 5: Multiple events
button.addEventListener('click', handleClick);
button.addEventListener('mouseenter', function() {
console.log('Mouse entered');
});
button.addEventListener('mouseleave', function() {
console.log('Mouse left');
});
// Method 6: Remove event listener
button.removeEventListener('click', handleClick);
// Method 7: Event object properties
button.addEventListener('click', function(e) {
console.log('Type:', e.type);
console.log('Target:', e.target);
console.log('Current Target:', e.currentTarget);
console.log('Timestamp:', e.timeStamp);
console.log('Bubbles:', e.bubbles);
console.log('Cancelable:', e.cancelable);
});Output
// Output depends on user interaction
DOM events allow interaction with web pages.
Event Types
- click: Mouse click
- mouseenter/mouseleave: Mouse hover
- keydown/keyup: Keyboard
- submit: Form submission
- load: Page loaded
- scroll: Page scrolling
addEventListener
- Preferred method
- Can add multiple handlers
- More flexible
Event Object
- type: Event type
- target: Element that triggered
- currentTarget: Element with handler
- preventDefault(): Stop default action
- stopPropagation(): Stop bubbling
Best Practices
- Use addEventListener
- Remove listeners when done
- Use event delegation for dynamic content