


The default behavior of the parent element tag and the interaction between click events
The content of this article is about the influence between the href default behavior of the parent element a tag and the response of the click event bound to the child element. It has certain reference value. Friends in need can refer to it. , hope it helps you.
Encountered a problem during the development process, simply write a demo The running environment is Chrome 68
Describe this problem, when there is nesting inside the a tag, the href default behavior of the parent element a tag There is an impact on the response to the click event bound to the child element. Page structure:
nbsp;html> <meta> <meta> <meta> <title>a标签内部点击事件失效</title> <style> * { margin: 0; padding: 0; } .father { display: block; width: 500px; height: 200px; background-color: rgb(210, 111, 30); } .child-one { display: block; width: 200px; height: 50px; background-color: rgb(174, 43, 226); } .child-two { display: block; width: 200px; height: 50px; background-color: rgb(43, 226, 67); } .child-three { display: block; width: 200px; height: 50px; background-color: rgb(43, 137, 226); } </style> <a>父标签 <span> 子标签1 </span> <object> <a> 子标签2 </a> </object> <object> <a> 子标签3 </a> </object> </a> <script> let father = document.querySelector('.father'); let ele1 = document.querySelector('.child-one'); let ele2 = document.querySelector('.child-two'); let ele3 = document.querySelector('.child-three'); ele1.addEventListener('click', function (e) { e.stopPropagation(); // e.preventDefault(); alert('click child-one') window.location.href = 'child-one' }, false) ele2.addEventListener('click', function (e) { e.stopPropagation(); alert('click child-two') // window.location.href='child-two' }, false) ele3.addEventListener('click', function (e) { alert('click child-three') window.location.href = 'child-three' }, false) father.addEventListener('click', function (e) { alert('click father') window.location.href = 'father' }, false) </script>
The example is as shown below (if the a tag is nested, the browser will parse it incorrectly, so it is wrapped with an object tag).
Perform the operation:
When the parent tag is clicked, 111 will pop up first, and then jump to the parent The href link of the tag.
Explanation that onclick is executed before hrefWhen child-one is clicked, the click event bound to the element is executed, and alert will pop up, but the location still jumps to father.
After preventing bubbling, the execution results still do not meet expectations. After addingpreventDefault
, the child element's own jump is performed.When child-two is clicked, a response message will pop up, and the href link will jump.
When child-three is clicked,
click child-three
pops up first, and thenhref child-three
, indicating that the click event precedes href execution.
The above four operations are all easy to understand except 2. In 2, why is the parent element still executed after preventing the event from bubbling? href
jump.
Thinking:
First of all, it is certain that event bubbling is indeed blocked because the onclick of the parent element is not executed.
So I guess, the default behavior of the tag cannot be prevented by canceling bubbling. Even if the event does not bubble up to the parent element, the child element is inside the parent element <a></a>
, the <a></a>
tag default behavior will still be performed.
Solution:
Add e.preventDefault() in the child element
Prevent default behavior
The parent element does not use<a> tag, use other tags to bind click events and child elements to prevent bubbling </a>
The parent element does not use the href
attribute, directly in <a></a>
Binding the click event on the label
Recommended related articles:
linkWhat is the difference between label link CSS and @import loading?
HTML tag: Summary of usage of img tag
The above is the detailed content of The default behavior of the parent element tag and the interaction between click events. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.
