JavaScript Event.defaultPrevented

Whether you started with the old on_____ property or addEventListener, you know that events drive user experiences in modern JavaScript. If you’ve worked with events, you know that preventDefault() and stopPropagation() are frequently used to handle events. One thing you probably didn’t know: there’s a defaultPrevented proptery on events! Consider the following block of code: […]

The post JavaScript Event.defaultPrevented appeared first on David Walsh Blog.


This content originally appeared on David Walsh Blog and was authored by David Walsh

Whether you started with the old on_____ property or addEventListener, you know that events drive user experiences in modern JavaScript. If you’ve worked with events, you know that preventDefault() and stopPropagation() are frequently used to handle events. One thing you probably didn’t know: there’s a defaultPrevented proptery on events!

Consider the following block of code:

// Specific to a link
const link = document.querySelector('#my-link');
link.addEventListener('click', e => e.preventDefault());

// A larger document scope
document.addEventListener('click', documentClickHandler);
function documentClickHandler(event) {
    if (event.defaultPrevented) {// Using the property
        // Do one thing if the click has been handled
    }
    else {
        // Otherwise do something fresh
    }
}

When preventDefault is called on a given event, the defaultPrevented property gets toggled to true. Due to event propagation, the event bubbles upward with this defaultPrevented value.

I’ve been handling events for two decades and didn’t know this property existed until now. What’s great about defaultPrevented is that it stays with the event without needing to track track it globally!

The post JavaScript Event.defaultPrevented appeared first on David Walsh Blog.


This content originally appeared on David Walsh Blog and was authored by David Walsh


Print Share Comment Cite Upload Translate Updates
APA

David Walsh | Sciencx (2022-07-27T02:13:17+00:00) JavaScript Event.defaultPrevented. Retrieved from https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/

MLA
" » JavaScript Event.defaultPrevented." David Walsh | Sciencx - Wednesday July 27, 2022, https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/
HARVARD
David Walsh | Sciencx Wednesday July 27, 2022 » JavaScript Event.defaultPrevented., viewed ,<https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/>
VANCOUVER
David Walsh | Sciencx - » JavaScript Event.defaultPrevented. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/
CHICAGO
" » JavaScript Event.defaultPrevented." David Walsh | Sciencx - Accessed . https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/
IEEE
" » JavaScript Event.defaultPrevented." David Walsh | Sciencx [Online]. Available: https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/. [Accessed: ]
rf:citation
» JavaScript Event.defaultPrevented | David Walsh | Sciencx | https://www.scien.cx/2022/07/27/javascript-event-defaultprevented/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.