Question 64
Question
Answer
// Create the custom event class
class MyCustomEvent extends Event {
constructor(type, detail) {
super(type, { bubbles: true, cancelable: true }); // Set 'bubbles' for bubbling, 'cancelable' for cancellation
this.detail = detail;
}
}
// Example usage:
const parentElement = document.getElementById('myParent'); // Or any element you want
parentElement.addEventListener('myCustomEvent', (event) => {
console.log('Parent Element:', event.type, 'Detail:', event.detail);
if (event.cancelable && !someCondition()) {
// If cancellation is possible and the condition is not met, cancel the event:
event.preventDefault();
}
});
document.addEventListener('myCustomEvent', (event) => {
console.log('Document Element:', event.type, 'Detail:', event.detail);
});
// Trigger the custom event
const childElement = parentElement.querySelector('.child'); // Or any element that triggers it
childElement.addEventListener('click', () => {
const myEvent = new MyCustomEvent('myCustomEvent', { message: 'This is a custom event!' });
parentElement.dispatchEvent(myEvent);
});Last updated