Heim Web-Frontend js-Tutorial Event-Delegation in Javascript (Bild- und Text-Tutorial)

Event-Delegation in Javascript (Bild- und Text-Tutorial)

May 19, 2018 pm 02:53 PM
javascript js 教程

In diesem Artikel werden hauptsächlich relevante Informationen zur detaillierten Erklärung der Ereignisdelegation in JavaScript vorgestellt. Freunde, die sie benötigen, können darauf verweisen.

Ich habe in letzter Zeit eine Interviewfrage gesehen, in der Sie wahrscheinlich gebeten wurden, 1.000 Li zu geben Sollte ich ein Klickereignis hinzufügen? Der erste Eindruck, den die meisten Leute haben, ist, dass sie zu jedem Li eins hinzufügen werden Werfen wir einen Blick auf die oben genannten Mechanismen.

Lassen Sie uns zunächst über die Event-Bubbling- und Event-Capture-Mechanismen sprechen. Die beiden Unternehmen waren sich uneinig. Später musste das W3C eine Kompromissmethode anwenden. Wenn ein Ereignis auftritt, wird es zuerst erfasst und dann in die Luft gesprudelt in js, nämlich:

 

ele.addEventListener(type,listener,[useCapture]);//IE6~8 unterstützt nicht

 ele.attachEvent ('on'+type,listener);//Unterstützt von IE6~10, nicht unterstützt von IE11

 ele.onClick=function(){} ;//Alle Browser unterstützen

Die w3c-Spezifikation definiert drei Ereignisphasen: die Erfassungsphase, die Zielphase und die Bubbling-Phase. In den von w3c angegebenen Regeln auf Dom2-Ebene ist es der addEventListener, der auf Ereignisse wartet Wir werden addEventListener zur Erklärung verwenden. Blasen sind so, als ob die Blasen im Wasser vom Boden auftauchen, wenn Sie einen Stein ins Wasser werfen. Das bedeutet, dass die Blasen nach dem Auslösen des Ereignisses aufsteigen Das untergeordnete Element wird in Richtung des übergeordneten Elements ausgelöst, während der Erfassungsmechanismus genau das Gegenteil ist. Der Erfassungsmechanismus löst Ereignisse vom übergeordneten Element zum untergeordneten Element aus, und der dritte Parameter in der Funktion addEventListener wird verwendet, um zu entscheiden, ob die Funktion verwendet werden soll Capture-Mechanismus oder Bubbling-Mechanismus. Wenn useCapture true ist, ist es der Bubbling-Mechanismus. Schauen wir uns das Beispiel an:

Code kopieren

<p class="parent">
  <p class="child">

  </p>
</p>
<script>
  var parent = document.getElementsByClassName(&#39;parent&#39;)[0];
  var child = document.getElementsByClassName(&#39;child&#39;)[0];

  parent.addEventListener(&#39;click&#39;,function(){
    console.log("这里是父元素");
  },false);
  child.addEventListener(&#39;click&#39;,function(){
    console.log("这里是子元素");
  },false);
</script>
Nach dem Login kopieren

Wenn wir auf das untergeordnete Element klicken, wird das obige Bild angezeigt. Wenn wir „falsch“ in „wahr“ ändern, werden wir feststellen, dass die Ausführungsreihenfolge umgekehrt wird. Dies ist der Unterschied zwischen Ereignissprudeln und -erfassung. Sie sind genau das Gegenteil:

Der Nachteil dieses Bindungsmechanismus besteht darin, dass es sehr mühsam ist, Ereignisse an jedes Objekt zu binden, wenn wir ein Ereignis löschen möchten Wenn Sie ein Ereignis ändern, ist dies besonders umständlich und noch komplizierter. Wichtig ist, dass wir die Verknüpfung zwischen JavaScript und DOM-Knoten erhöht haben. Wenn es einen Zirkelverweis gibt, kann dies zu Speicherverlusten führen Nachteile,

Eine Möglichkeit, diesen Nachteil zu lösen, ist die Ereignisdelegierung. Mit dieser Methode können Sie vermeiden, Ereignisse einzeln zu jedem Knoten hinzuzufügen. Sie bindet diese Überwachungsereignisse an die übergeordneten Elemente dieser Knoten. Auf dem übergeordneten Element Diese Überwachungsfunktion ermittelt automatisch, welches untergeordnete Element das Ereignis ausgelöst hat, sodass sie auf das untergeordnete Element zugreifen kann, das das Ereignis ausgelöst hat. Das hier angegebene Beispiel ist ein Beispiel von davidwalsh:

Jetzt haben wir ein übergeordnetes Element ul und mehrere untergeordnete li-Elemente,

<ul id="parent-list">
  <li id="post-1">Item 1</li>
  <li id="post-2">Item 2</li>
  <li id="post-3">Item 3</li>
  <li id="post-4">Item 4</li>
  <li id="post-5">Item 5</li>
  <li id="post-6">Item 6</li>
</ul>
Nach dem Login kopieren

Was wir jetzt erreichen wollen, ist, dass, wenn wir auf jeden li-Knoten klicken, der Inhalt des li-Knotens wie oben beschrieben ausgegeben wird Beim Schreiben können Sie diese Li auswählen, ihnen diese Methoden hinzufügen und sie dann entfernen, wenn sie nicht mehr benötigt werden. Wenn es 100 Li oder 1000 Li gibt, wird dies zu Ihrem Albtraum. Eine bessere Lösung besteht darin, ein Listening-Ereignis hinzuzufügen Die nächste Frage zum übergeordneten Element ist, wie wir feststellen können, auf welches Li geklickt wurde. Wir können das Ziel des aktuellen Ereignisses im Listening-Ereignis beurteilen, um festzustellen, ob es sich um den Knoten handelt, nach dem wir suchen:

// 找到父元素,绑定一个监听事件
document.getElementById("parent-list").addEventListener("click", function(e) {
  // e.target是点击的元素
  // 如果它是li元素
  if(e.target && e.target.nodeName == "LI") {
    //
    console.log("List item ", e.target.id.replace("post-", ""), " was clicked!");
  }
});
Nach dem Login kopieren

Wenn in ul ein Klickereignis auftritt, wird das Listening-Ereignis ausgeführt, wenn das zugrunde liegende Ereignis ausgelöst wird, da addEventListener standardmäßig ein Bubbling-Ereignis ist. Überprüfen Sie nach dem Auslösen, ob es sich um das Zielelement handelt Ist das gesuchte Element nicht das Zielelement, wird es ignoriert. Dann können wir nicht nur prüfen, ob das Tag des Zielelements das von uns benötigte Zielelement ist, sondern wir können es auch anhand der Attribute oder des Klassennamens erkennen Zielelement, für die Verarbeitung wird die ele .maeches-API verwendet.

document.getElementById("myp").addEventListener("click",function(e) {
  // e.target 就是当前被点击的元素
 if (e.target && e.target.matches("a.classA")) {
  console.log("Anchor element clicked!");
  }
});
Nach dem Login kopieren

Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Vue.

jsDetaillierte Schritte zur Entwicklung des MPvue-Frameworks

Laden und Entfernen Sie

Detaillierte Erklärung von js und CSS-Dateischritten

Wie schreibe ich JS

, wenn Sie unregelmäßige Multis durchlaufen müssen -dimensionale Arrays

Das obige ist der detaillierte Inhalt vonEvent-Delegation in Javascript (Bild- und Text-Tutorial). 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

Tutorial zur Verwendung von Dewu Tutorial zur Verwendung von Dewu Mar 21, 2024 pm 01:40 PM

Dewu APP ist derzeit eine sehr beliebte Marken-Shopping-Software, aber die meisten Benutzer wissen nicht, wie sie die Funktionen in Dewu APP verwenden. Nachfolgend finden Sie eine Zusammenfassung des Dewuduo-Tutorials Interessierte Benutzer können vorbeikommen und einen Blick darauf werfen! Tutorial zur Verwendung von Dewu [20.03.2024] Verwendung des Dewu-Ratenkaufs [20.03.2024] So erhalten Sie Dewu-Gutscheine [20.03.2024] So finden Sie den manuellen Kundendienst von Dewu [2024-03- 20] So überprüfen Sie den Abholcode von Dewu [20.03.2024] Wo Sie Dewu kaufen können [20.03.2024] So eröffnen Sie Dewu VIP [20.03.2024] So beantragen Sie die Rückgabe oder den Umtausch von Dewu

Im Sommer müssen Sie unbedingt versuchen, einen Regenbogen zu schießen Im Sommer müssen Sie unbedingt versuchen, einen Regenbogen zu schießen Jul 21, 2024 pm 05:16 PM

Nach dem Regen im Sommer können Sie oft ein wunderschönes und magisches besonderes Wetterbild sehen – den Regenbogen. Dies ist auch eine seltene Szene, die man in der Fotografie antreffen kann, und sie ist sehr fotogen. Für das Erscheinen eines Regenbogens gibt es mehrere Bedingungen: Erstens sind genügend Wassertröpfchen in der Luft und zweitens scheint die Sonne in einem niedrigeren Winkel. Daher ist es am einfachsten, einen Regenbogen am Nachmittag zu sehen, nachdem der Regen nachgelassen hat. Allerdings wird die Bildung eines Regenbogens stark von Wetter, Licht und anderen Bedingungen beeinflusst, sodass sie im Allgemeinen nur von kurzer Dauer ist und die beste Betrachtungs- und Aufnahmezeit sogar noch kürzer ist. Wenn Sie also auf einen Regenbogen stoßen, wie können Sie ihn dann richtig aufzeichnen und qualitativ hochwertige Fotos machen? 1. Suchen Sie nach Regenbögen. Zusätzlich zu den oben genannten Bedingungen erscheinen Regenbögen normalerweise in Richtung des Sonnenlichts, das heißt, wenn die Sonne von Westen nach Osten scheint, ist es wahrscheinlicher, dass Regenbögen im Osten erscheinen.

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

Anleitung zum Deaktivieren des Zahlungstons auf WeChat Anleitung zum Deaktivieren des Zahlungstons auf WeChat Mar 26, 2024 am 08:30 AM

1. Öffnen Sie zunächst WeChat. 2. Klicken Sie oben rechts auf [+]. 3. Klicken Sie auf den QR-Code, um die Zahlung einzuziehen. 4. Klicken Sie auf die drei kleinen Punkte in der oberen rechten Ecke. 5. Klicken Sie auf , um die Spracherinnerung für den Zahlungseingang zu schließen.

Tutorial zu DisplayX (Monitortestsoftware). Tutorial zu DisplayX (Monitortestsoftware). Mar 04, 2024 pm 04:00 PM

Das Testen eines Monitors beim Kauf ist ein wesentlicher Bestandteil, um den Kauf eines beschädigten Monitors zu vermeiden. Heute werde ich Ihnen beibringen, wie Sie den Monitor mit Software testen. Methodenschritt 1. Suchen Sie zunächst auf dieser Website nach der DisplayX-Software, laden Sie sie herunter, installieren Sie sie und öffnen Sie sie. Sie werden dann viele Erkennungsmethoden sehen, die den Benutzern zur Verfügung gestellt werden. 2. Der Benutzer klickt auf den regulären Volltest. Der erste Schritt besteht darin, die Helligkeit des Displays zu testen. Der Benutzer stellt die Anzeige so ein, dass die Kästchen deutlich sichtbar sind. 3. Klicken Sie dann mit der Maus, um den nächsten Link einzugeben. Wenn der Monitor jeden schwarzen und weißen Bereich unterscheiden kann, bedeutet dies, dass der Monitor immer noch in Ordnung ist. 4. Klicken Sie erneut mit der linken Maustaste und Sie sehen den Graustufentest des Monitors. Je glatter der Farbübergang, desto besser der Monitor. 5. Darüber hinaus haben wir in der DisplayX-Software

Welche Software ist Photoshopcs5? -tutorial zur Verwendung von Photoshopcs5 Welche Software ist Photoshopcs5? -tutorial zur Verwendung von Photoshopcs5 Mar 19, 2024 am 09:04 AM

PhotoshopCS ist die Abkürzung für Photoshop Creative Suite. Es handelt sich um eine von Adobe hergestellte Software, die häufig im Grafikdesign und in der Bildverarbeitung verwendet wird. Lassen Sie mich Ihnen heute erklären, was Photoshopcs5 ist und wie Sie Photoshopcs5 verwenden. 1. Welche Software ist Photoshop CS5? Adobe Photoshop CS5 Extended ist ideal für Profis in den Bereichen Film, Video und Multimedia, Grafik- und Webdesigner, die 3D und Animation verwenden, sowie Profis in den Bereichen Technik und Wissenschaft. Rendern Sie ein 3D-Bild und fügen Sie es zu einem zusammengesetzten 2D-Bild zusammen. Bearbeiten Sie Videos einfach

Experten unterrichten Sie! Der richtige Weg, lange Bilder auf Huawei-Handys zu schneiden Experten unterrichten Sie! Der richtige Weg, lange Bilder auf Huawei-Handys zu schneiden Mar 22, 2024 pm 12:21 PM

Mit der kontinuierlichen Weiterentwicklung von Smartphones sind die Funktionen von Mobiltelefonen immer leistungsfähiger geworden, darunter die Funktion zum Aufnehmen langer Bilder zu einer der wichtigen Funktionen, die viele Benutzer im täglichen Leben nutzen. Lange Screenshots können Benutzern dabei helfen, eine lange Webseite, Gesprächsaufzeichnung oder ein Bild gleichzeitig zu speichern, um sie einfacher anzeigen und teilen zu können. Unter vielen Mobiltelefonmarken gehören auch Huawei-Handys zu den Marken, die von den Nutzern sehr geschätzt werden, und auch ihre Funktion zum Zuschneiden langer Bilder wird hoch gelobt. In diesem Artikel erfahren Sie, wie Sie lange Bilder mit Huawei-Mobiltelefonen richtig aufnehmen, und erhalten einige Expertentipps, die Ihnen dabei helfen, Huawei-Mobiltelefone besser zu nutzen.

PHP-Tutorial: So konvertieren Sie den Typ int in einen String PHP-Tutorial: So konvertieren Sie den Typ int in einen String Mar 27, 2024 pm 06:03 PM

PHP-Tutorial: So konvertieren Sie den Int-Typ in einen String. In PHP ist das Konvertieren von Ganzzahldaten in einen String ein häufiger Vorgang. In diesem Tutorial erfahren Sie, wie Sie die in PHP integrierten Funktionen verwenden, um den Typ int in einen String zu konvertieren, und stellen gleichzeitig spezifische Codebeispiele bereit. Cast verwenden: In PHP können Sie Cast verwenden, um ganzzahlige Daten in einen String umzuwandeln. Diese Methode ist sehr einfach. Sie müssen lediglich (string) vor den ganzzahligen Daten hinzufügen, um sie in einen String umzuwandeln. Unten finden Sie einen einfachen Beispielcode

See all articles