Inhaltsverzeichnis
Führen Sie den Vorgang aus:
Denken:
Heim Web-Frontend HTML-Tutorial Das Standardverhalten des -Tags des übergeordneten Elements und die Interaktion zwischen Klickereignissen

Das Standardverhalten des -Tags des übergeordneten Elements und die Interaktion zwischen Klickereignissen

Aug 08, 2018 pm 02:28 PM
html javascript

Der Inhalt dieses Artikels befasst sich mit dem Einfluss zwischen dem href-Standardverhalten des übergeordneten Elements und der Reaktion des an das untergeordnete Element gebundenen Klickereignisses. Es hat einen bestimmten Referenzwert. , hoffe es hilft dir.

Ich bin während des Entwicklungsprozesses auf ein Problem gestoßen. Die laufende Umgebung ist Chrome 68.

Beschreiben Sie dieses Problem, wenn innerhalb des a-Tags eine Verschachtelung auftritt Das Verhalten des übergeordneten Elements und eines Tags hat Auswirkungen auf die Reaktion auf das an das untergeordnete Element gebundene Klickereignis. Seitenstruktur:

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(&#39;.father&#39;);
        let ele1 = document.querySelector(&#39;.child-one&#39;);
        let ele2 = document.querySelector(&#39;.child-two&#39;);
        let ele3 = document.querySelector(&#39;.child-three&#39;);

        ele1.addEventListener(&#39;click&#39;, function (e) {
            e.stopPropagation();
            // e.preventDefault();
            alert(&#39;click child-one&#39;)
            window.location.href = &#39;child-one&#39;
        }, false)

        ele2.addEventListener(&#39;click&#39;, function (e) {
            e.stopPropagation();
            alert(&#39;click child-two&#39;)
            // window.location.href=&#39;child-two&#39;
        }, false)

        ele3.addEventListener(&#39;click&#39;, function (e) {
            alert(&#39;click child-three&#39;)
            window.location.href = &#39;child-three&#39;
        }, false)

        father.addEventListener(&#39;click&#39;, function (e) {
            alert(&#39;click father&#39;)
            window.location.href = &#39;father&#39;
        }, false)

    </script>


Nach dem Login kopieren

Das Beispiel sieht wie unten gezeigt aus (wenn das Tag „a“ verschachtelt ist, analysiert der Browser es falsch, sodass es mit einem Objekt-Tag umschlossen wird).

Das Standardverhalten des <a>-Tags des übergeordneten Elements und die Interaktion zwischen Klickereignissen

Führen Sie den Vorgang aus:

  1. Wenn auf das übergeordnete Tag geklickt wird, erscheint zuerst 111 und Springt dann zum übergeordneten href-Link des Tags.
    Gibt an, dass onclick vor href ausgeführt wird

  2. Wenn auf child-one geklickt wird, wird das an das Element gebundene Click-Ereignis ausgeführt und eine Warnung wird angezeigt, die Position springt jedoch weiterhin zum Vater.
    Nachdem die Blasenbildung verhindert wurde, entsprechen die Ausführungsergebnisse immer noch nicht den Erwartungen. Nach dem Hinzufügen von preventDefault wird der eigene Sprung des untergeordneten Elements ausgeführt.

  3. Wenn auf „Kind-zwei“ geklickt wird, wird eine Antwortnachricht angezeigt und der Href-Link springt.

  4. Wenn auf „Kind-drei“ geklickt wird, wird zuerst click child-three und dann href child-three angezeigt, was darauf hinweist, dass das Klickereignis vor dem href ausgeführt wird.

Die oben genannten vier Operationen sind bis auf 2 leicht zu verstehen. Warum wird in 2 der Sprung von href im übergeordneten Element immer noch ausgeführt, nachdem verhindert wurde, dass das Ereignis sprudelt?

Denken:

Zuallererst ist es sicher, dass das Event-Bubbling tatsächlich blockiert ist, weil der Onclick des übergeordneten Elements nicht ausgeführt wird.
Ich vermute also, dass das Standardverhalten des -Tags nicht durch das Abbrechen des Bubblings verhindert werden kann. Auch wenn das Ereignis nicht zum übergeordneten Element übergeht, wird das untergeordnete Element trotzdem <a></a> innerhalb des Tag des übergeordneten Elements. <a></a>

Lösung:

Fügen Sie

im untergeordneten Element hinzu, um das Standardverhalten zu verhindern.e.preventDefault()

Das übergeordnete Element verwendet nicht das

-Tag. Verwenden Sie zum Binden andere Tags Klickereignisse und das untergeordnete Element verhindern Sprudeln <a></a>

Das übergeordnete Element verwendet nicht das

-Attribut und bindet das Klickereignis direkt an das href-Tag <a></a>

Empfohlene verwandte Artikel:

link Was ist der Unterschied zwischen Tagged-Link-CSS und @import-Laden?

HTML-Tag: Zusammenfassung der Verwendung des IMG-Tags

Das obige ist der detaillierte Inhalt vonDas Standardverhalten des -Tags des übergeordneten Elements und die Interaktion zwischen Klickereignissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1659
14
PHP-Tutorial
1258
29
C#-Tutorial
1232
24
Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

Wie analysiert und verarbeitet man HTML/XML in PHP? Wie analysiert und verarbeitet man HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles