


jquerys Tipps zum Event-Bubbling und zur Event-Delegation sowie drei Implementierungsmethoden zum Verhindern und Zulassen von Event-Bubbling_jquery
Zunächst einmal weiß jeder, dass es beim Auslösen von jQuery-Ereignissen zwei Mechanismen gibt: der eine ist die Ereignisdelegation und der andere das Ereignis-Bubbling (die IE-Situation wird vorerst nicht berücksichtigt). Nehmen Sie als Beispiel das Klickereignis und hängen Sie zunächst einen Code an:
html:
<body> <div id="box"> <p id="btn">我是按钮</p> </div> </body> style: .hid{ display:none; }
Skript:
$('#box').click(function(){ $(‘#btn').toggleClass(‘hid'); }) $('#btn').click(function(){ alert('btn'); })
Die ursprüngliche Absicht dieses Codes besteht darin, dass ich die Zeichenfolge „btn“ warnen möchte, wenn ich auf #btn klicke, und dass ich #btn ausblenden möchte, wenn ich auf #box klicke Btn: Zuerst wird das BTN-Ereignis und dann das Box-Ereignis ausgeführt, das heißt, es wird zuerst alarmiert und dann ausgeblendet. Es unterscheidet sich von dem, was wir dachten. Wie kann dieses Problem gelöst werden? Hier müssen wir über den Ereignis-Bubbling-Mechanismus nachdenken, denn wenn ich auf BTN klicke, wird das Ereignis zum übergeordneten Element bis zum Dokumentobjekt übertragen.
JQuery-Versionen nach 1.7 bieten (wenn ich mich richtig erinnere) das .on()-Ereignis, um Ereignisse gebundener Elemente zu verarbeiten. Hier können wir das .on()-Ereignis und die stopPropagation()-Methode verwenden, um Ereignisse zu verhindern 🎜>
$('#box').on('click','#btn',function(e){ e.stopPropagation(); alert(‘btn'); }) $('#box').click(function(){ $(‘#btn').toggleClass(‘hid'); })
Ich habe hier darüber nachgedacht, wie ich es lösen kann, wenn .on() nicht verwendet wird. Ähnlich wie bei nativem js wird addEventListener verwendet, um das angeklickte Ziel zu überwachen. Der Code ist nicht kompliziert:
$('#box‘).click(function(e) { if (e.target == this) { $(‘#btn').toggleClass(‘hid'); } }) $(‘#btn').click(function() { alert(‘btn'); })
Natürlich sind Event-Bubbling nicht nur Nebeneffekte, sondern auch die Event-Delegation, die auf Event-Bubbling basiert. Es gibt viele Elemente zwischen btn und #box. Wenn ich auf das innerste #btn klicken und das entsprechende Ereignis auslösen möchte, kann ich auf die peripheren Elemente klicken und dann feststellen, ob der Klick das Ziel ist btn. Wenn ja, dann ist das Ereignis, das btn auslöst, tatsächlich das obige Beispiel von .on(), das wie folgt umgeschrieben werden kann:
$('body').on('click','#btn',function(e){ alert(‘btn'); })
Lassen Sie es uns abschließend sorgfältig analysieren. Tatsächlich sind Ereignisdelegation und Ereignissprudeln aus logischer Sicht nichts anderes als zwei entgegengesetzte Ausführungsrichtungen. Bei der Ereignisdelegation handelt es sich eigentlich um den Prozess der Ereigniserfassung, der als ein Prozess der Erfassung von außen nach innen angesehen werden kann, während das Sprudeln von Ereignissen ein Prozess des Sprudelns von innen nach außen ist.
Blockieren und Zulassen von Bubbling-Ereignissen von JQuery (drei Implementierungsmethoden)Bubbling- oder Standardereignisse sind zu bestimmten Zeiten nicht erforderlich. Hier benötigen wir einige Methoden, um Bubbling- und Standardereignisse in unterschiedlichem Ausmaß zu verhindern sprudelnde Ereignisse
Manchmal möchten wir nicht, dass Bubbling- oder Standardereignisse auftreten, daher benötigen wir einige JQuery-Methoden, um Bubbling- und Standardereignisse zu verhindern.
Mit den folgenden drei Methoden können unterschiedliche Blockierungsgrade erreicht werden.
false zurückgeben Bei der Ereignisverarbeitung können Sie Standardereignisse und Bubbling-Ereignisse verhindern.
event.preventDefault() kann Standardereignisse verhindern, aber das Auftreten von Bubbling-Ereignissen während der Ereignisverarbeitung zulassen.
event.stopPropagation() kann Blasenbildung verhindern, aber das Eintreten des Standardereignisses während der Ereignisverarbeitung zulassen.

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...
