Home >
Web Front-end >
JS Tutorial >
Introduction to the difference between event.cancelBubble and event.stopPropagation()_jquery
Introduction to the difference between event.cancelBubble and event.stopPropagation()_jquery
WBOY
Release: 2016-05-16 17:58:30
Original
1501 people have browsed it
First of all, I saw many articles on the Internet that are generally divided into two (incorrect) views: 1. cancelBubble is used to prevent bubbling events in IE, and event.stopPropagation() is used in other browsers such as firefox and chrome. . Let’s not talk about whether the above is right or wrong Let’s look at an example: (Test environment: chrom5.0.275.7, moz3.6.4, opera10.53, ie6,7,8)
Tested: a,chrom5.0.275.7, opera10. 53, ie6,7,8 In these browsers, cancelBubble is effective and can prevent the event from bubbling so that the body's onclick cannot be triggered. Only the click of the button is triggered alert(event.cancelBubble); the output result is true b. In the moz3.6.4 version, the onclick of the body cannot be prevented, but the output result of alert(event.cancelBubble); is still true, I think this should be event.cancelBubble just adds an attribute to the event and assigns it to true; When the js code is changed to this:
can be effectively blocked. Of course, event.stopPropagation(); in chrome and opera is also valid. Conclusion 1: The above shows that event.cancelBubble is already supported in the new versions of chrome and opera browsers, only moz is missing. In fact, I personally think event.cancelBubble. cancelBubble is better than event.stopPropagation(), not only in the English sense. So I hope moz will release a new version and support it. This is compatible with 2. There are also frequently asked questions about the order of events: Incompletely accurate conclusion (in my opinion) ie: source event element->> parent element event ->>body-->>document moz: Wait for other browsers to be the opposite of the above Let’s look at an example first:
If I click the button event now from the body---->div----->button,,,,then Just alert the body first and then trigger the div to pop up 123. Since bubbling is prevented, the click of the button will not trigger. But it has been tested by us. moz is still triggered from the inside out. Correctly execute alert("btn")--->>alert("123")----to prevent bubbling and not trigger the click event of the body At this point, you may wonder that the above is incorrect, but The above statement is correct for events added with addListenter and attachEvent (). For example:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn