event.PreventDefault Vs. event.stopPropagation
The event.preventDefault() serves to prevent the default behavior triggered by the browser in response to an event, such as form submission or hyperlink navigation. However, it does not interfere with the event's propagation up the DOM tree. Conversely, event.stopPropagation() is employed to halt the upward propagation of an event through the DOM hierarchy, preventing it from reaching higher-level elements, while it does not impede the default behavior initiated by the browser. Each method addresses a specific aspect of event control, and their combined use is often necessary to comprehensively manage event interactions.
Event capture
Event capture involves the registration of an EventListener on an ancestor of the event's target, allowing it to intercept events of a particular type before they reach the target element. If a capturing EventListener wishes to halt the event's further processing, it can utilize the stopPropagation method, which prevents the event from continuing to propagate. However, it's important to note that additional EventListeners registered at the same hierarchy level will still receive the event. Event cancellation, on the other hand, is achieved by calling the preventDefault method of the Event interface. When one or more EventListeners call preventDefault during any phase of event flow, the default action associated with the event will be canceled, providing control over event behavior.
event.preventDefault() example
Here we can see, preventDefault only the browsers default action is stopped but the div's click handler still fires.
Full Sourceevent.stopPropagation() example
Here we can see, with stopPropagation only the buttons click handler is called and the divs click handler never fires.
Full SourceConclusion
- The event.preventDefault() method on a child will stop the event on the child but it will happen on it's parent (and the ancestors too!).
- The event.stopPropagation() method on a child will stop that event from happening on the parent (the entire ancestors).
- jQuery Interview Questions (Part-2)
- jQuery Interview Questions (Part-3)
- Is jQuery a programming language?
- Why do we need to go for JQuery?
- How to check jQuery version?
- How to multiple version of jQuery?
- What is jQuery CDN?
- Advantages of minified version of JQuery
- How do I check if the DOM is ready?
- How to Use the jQuery load() Method
- Difference between document.ready() and body onload()?
- Is jQuery is a replacement of JavaScript?
- JQuery or JavaScript which is quicker in execution?
- What is the use of param() method in jquery
- How to work with jQuery parent(), children() and siblings()?
- Difference between parent() and parents() in jQuery?
- What does jQuery data() function do?
- How do you check if an element exists or not in jQuery?
- How do I check if an HTML element is empty using jQuery?
- How to run an event handler only once in jQuery?
- How to Disable or Enable a Form Element Using jQuery
- Hide and show image on button click using jQuery
- Difference Between Prop and Attr in jQuery
- How do I check if an element is hidden in jQuery?
- Difference between return false; and e.preventDefault()
- What is each() function in jQuery? How do you use it?
- Which one is more efficient, document.getElementbyId( "myId") or $("#myId)?
- What is the difference between $.map and $.grep in jQuery
- What is the use of serialize method in jQuery
- What is the use of clone method in jQuery?
- What is event.PreventDefault in jQuery?
- What are deferred and promise object in jQuery?
- What are source maps in jQuery?
- What does the jQuery migrate function do?
- Differences Between jQuery .bind() and .live()?
- How can you delay document.ready until a variable is set?
- How to disable cut,copy and paste in TextBox using jQuery?
- How to prevent Right Click option using jquery?
- How does the jQuery pushStack function work?
- Why use jQuery filter() Methods?
- Difference between find() and closest() in jquery?
- How To Use Ajax In Jquery?
- How to multiple AJAX requests be run simultaneously in jQuery?
- Can we call C# code behind using jQuery?
- How to include jQuery in ASP.Net project?
- Need to add jQuery file in both Master and Content page?
- Uncaught TypeError: $(…).modal is not a function jquery
- How to check whether a checkbox is checked in jQuery?
- Uncaught ReferenceError: $ is not defined
- How to Convert JSON Date to JavaScript/jQuery date