Heim Web-Frontend js-Tutorial Ausführliche Erläuterung der Schritte zum dynamischen Hinzufügen von Klickereignissen in JQuery

Ausführliche Erläuterung der Schritte zum dynamischen Hinzufügen von Klickereignissen in JQuery

May 25, 2018 pm 01:36 PM
jquery 事件 点击

Dieses Mal erkläre ich Ihnen ausführlich die Schritte zum dynamischen Hinzufügen von Klickereignissen mit jquery. Was sind die Vorsichtsmaßnahmen für das dynamische Hinzufügen von Klickereignissen mit jquery? Hier sind praktische Fälle . Werfen wir einen Blick darauf.

Wenn wir versuchen, einige Ereignisse an DOM-Elemente zu binden, verwenden wir normalerweise die folgenden vier Methoden
bind(),on(),live(),delegate()Die ersten beiden sollten eher als Methode verwendet werden. Das Folgende ist mein Verständnis der vier Methoden:

  • Bind(): .bind() ist die direkteste Bindungsmethode, die die angegebene -Funktion bindet Ereignisse werden in das DOM übertragen. Diese Methode löst das Browserkompatibilitätsproblem bei der Ereignisbehandlung sehr gut, aber diese Methode weist immer noch einige Probleme auf. Code:

$( "#members li a" ).bind( "click", function( e ) {} ); 
$( "#members li a" ).click( function( e ) {} );
Nach dem Login kopieren

Die beiden oben genannten Codezeilen erfüllen die gleiche Aufgabe, nämlich das Hinzufügen des Ereignishandlers zu allen passenden a-Elementen. Hier gibt es einige Effizienzprobleme. Einerseits fügen wir allen Tags Klickereignisse hinzu, andererseits ist es auch eine Verschwendung bei der Ausführung (Wir können sie mit ihren übergeordneten Elementen verknüpfen, sie durch Blasen unterscheiden und dann das Ereignishandle ausführen).
Vorteile

  • Diese Methode bietet eine Kompatibilitätslösung für die Ereignisbehandlung zwischen verschiedenen Browsern

  • Es ist sehr praktisch um Ereignisse an Elemente zu binden

  • .click(), .hover()... Diese sehr praktischen Zeitbindungen sind alle bind Eine vereinfachte Verarbeitungsmethode

  • eignet sich sehr gut für Elemente, die anhand der ID ausgewählt werden. Es kann nicht nur schnell eingebunden werden (die Seite kann nur eine ID haben), sondern der Handler kann auch sofort ausgeführt werden, wenn das Ereignis auftritt (entspricht dem späteren Live). Delegate) Implementierungsmethode

Nachteile

  • Es werden Ereignisse an alle gefilterten Elemente gebunden

  • Es werden keine Ereignisse an die Elemente gebunden, die nach Abschluss der Ausführung dynamisch hinzugefügt werden

  • Wenn viele gefilterte Elemente vorhanden sind, können Effizienzprobleme auftreten

  • Bind() kann nur ausgeführt werden, wenn die Seite geladen ist, daher kann es zu Effizienzproblemen kommen. Die Methode


.live()
.live() verwendet das Konzept der Ereignisdelegation, um die Ereignisbindung zu handhaben. Es ist dasselbe wie die Verwendung von .bind() zum Binden von Ereignissen. Die Methode .live() bindet das entsprechende Ereignis an das Stammelement des von Ihnen ausgewählten Elements, nämlich das Element document. Dann können alle auftretenden Ereignisse von demselben Handler verarbeitet werden. Der Verarbeitungsmechanismus sieht folgendermaßen aus: Sobald das Ereignis in das Dokument gelangt, sucht jQuery nach den Selektor-/Ereignismetadaten und entscheidet dann, welcher Handler aufgerufen werden soll. Es scheint jedoch in der neuesten JQuery-Version gelöscht worden zu sein.

$( "#members li a" ).live( "click", function( e ) {} );
Nach dem Login kopieren

Vorteile:

  • Hier gibt es nur eine Ereignisbindung, die an das Dokument gebunden ist, anstelle von .bind() Alle Elemente werden einzeln gebunden

  • Diese dynamisch hinzugefügten Elemente können weiterhin Ereignisse auslösen, die zuvor gebunden wurden, da die tatsächliche Bindung des Ereignisses im Dokument erfolgt

  • Sie können die erforderlichen Ereignisse binden, bevor das Dokument fertig ist

Nachteile:

  • Es ist veraltet als von 1,7, also sollten Sie auch damit beginnen, es auslaufen zu lassen.

  • Verkettung wird nicht korrekt unterstützt

  • Bei Verwendung von event.stopPropagation() ist es nutzlos, da es das Dokument erreichen muss

  • Da alle Selektoren/Ereignisse an Dokumente gebunden sind,
    wenn wir also die Methode matchSelector verwenden, um auszuwählen, welches Ereignis aufgerufen wird, wird es sehr langsam sein

  • Wenn das Element, in dem das Ereignis auftritt, sehr tief in Ihrem DOM-Baum liegt, treten Leistungsprobleme auf


.Delegate()
.delegate()有点像.live(),不同于.live()的地方在于,它不会把所有的event全部绑定到document,而是由你决定把它放在哪儿。而和.live()相同的地方在于都是用event delegation.推荐使用.delegate() 代替.live()

$( "#members" ).delegate( "li a", "click", function( e ) {} );
Nach dem Login kopieren

优点:

  • 你可以选择你把这个事件放到那个元素上了 chaining被正确的支持了

  • jQuery仍然需要迭代查找所有的selector/eventdata来决定那个子元素来匹配,但是因为你可以决定放在那个根元素上,所以可以有效的减小你所要查找的元素。

  • 可以用在动态添加的元素上

缺点:

  • 需要查找那个那个元素上发生了那个事件了,尽管比document少很多了,不过,你还是得浪费时间来查找。


.On()
其实.bind(), .live(), .delegate()都是通过.on()来实现的,.unbind(), .die(), .undelegate(),也是一样的都是通过.off()来实现的,这是1.8.2的源码:

$( "#members li a" ).on( "click", function( e ) {} ); 
$( "#members li a" ).bind( "click", function( e ) {} ); 
// Live
$( document ).on( "click", "#members li a", function( e ) {} ); 
$( "#members li a" ).live( "click", function( e ) {} );
// Delegate
$( "#members" ).on( "click", "li a", function( e ) {} ); 
$( "#members" ).delegate( "li a", "click", function( e ) {} );
Nach dem Login kopieren

优点:

  • 提供了一种统一绑定事件的方法

  • 仍然提供了.delegate()的优点,当然如果需要你也可以直接用.bind()

缺点:

  • 也许会对你产生一些困扰,因为它隐藏了一前面我们所介绍的三种方法的细节。

结论:

  • 用.bind()的代价是非常大的,它会把相同的一个事件处理程序hook到所有匹配的DOM元素上

  • 不要再用.live()了,它已经不再被推荐了,而且还有许多问题

  • .delegate()会提供很好的方法来提高效率,同时我们可以添加一事件处理方法到动态添加的元素上。

  • 我们可以用.on()来代替上述的3种方法

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

CSS选择器使用方法总结

webkit-font-smoothing字体抗锯齿渲染使用案例详解

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Schritte zum dynamischen Hinzufügen von Klickereignissen in JQuery. 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
3 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)

Ausführliche Erläuterung der jQuery-Referenzmethoden: Kurzanleitung Ausführliche Erläuterung der jQuery-Referenzmethoden: Kurzanleitung Feb 27, 2024 pm 06:45 PM

Detaillierte Erläuterung der jQuery-Referenzmethode: Kurzanleitung jQuery ist eine beliebte JavaScript-Bibliothek, die häufig in der Website-Entwicklung verwendet wird. Sie vereinfacht die JavaScript-Programmierung und bietet Entwicklern umfangreiche Funktionen und Features. In diesem Artikel wird die Referenzmethode von jQuery ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern einen schnellen Einstieg zu erleichtern. Einführung in jQuery Zuerst müssen wir die jQuery-Bibliothek in die HTML-Datei einführen. Es kann über einen CDN-Link eingeführt oder heruntergeladen werden

Wie verwende ich die PUT-Anfragemethode in jQuery? Wie verwende ich die PUT-Anfragemethode in jQuery? Feb 28, 2024 pm 03:12 PM

Wie verwende ich die PUT-Anfragemethode in jQuery? In jQuery ähnelt die Methode zum Senden einer PUT-Anfrage dem Senden anderer Arten von Anfragen, Sie müssen jedoch auf einige Details und Parametereinstellungen achten. PUT-Anfragen werden normalerweise zum Aktualisieren von Ressourcen verwendet, beispielsweise zum Aktualisieren von Daten in einer Datenbank oder zum Aktualisieren von Dateien auf dem Server. Das Folgende ist ein spezifisches Codebeispiel, das die PUT-Anforderungsmethode in jQuery verwendet. Stellen Sie zunächst sicher, dass Sie die jQuery-Bibliotheksdatei einschließen. Anschließend können Sie eine PUT-Anfrage senden über: $.ajax({u

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Wie entferne ich das Höhenattribut eines Elements mit jQuery? Feb 28, 2024 am 08:39 AM

Wie entferne ich das Höhenattribut eines Elements mit jQuery? Bei der Front-End-Entwicklung müssen wir häufig die Höhenattribute von Elementen manipulieren. Manchmal müssen wir möglicherweise die Höhe eines Elements dynamisch ändern, und manchmal müssen wir das Höhenattribut eines Elements entfernen. In diesem Artikel wird erläutert, wie Sie mit jQuery das Höhenattribut eines Elements entfernen, und es werden spezifische Codebeispiele bereitgestellt. Bevor wir jQuery zum Betreiben des Höhenattributs verwenden, müssen wir zunächst das Höhenattribut in CSS verstehen. Das Höhenattribut wird verwendet, um die Höhe eines Elements festzulegen

jQuery-Tipps: Ändern Sie schnell den Text aller a-Tags auf der Seite jQuery-Tipps: Ändern Sie schnell den Text aller a-Tags auf der Seite Feb 28, 2024 pm 09:06 PM

Titel: jQuery-Tipps: Ändern Sie schnell den Text aller Tags auf der Seite. In der Webentwicklung müssen wir häufig Elemente auf der Seite ändern und bedienen. Wenn Sie jQuery verwenden, müssen Sie manchmal den Textinhalt aller a-Tags auf der Seite gleichzeitig ändern, was Zeit und Energie sparen kann. Im Folgenden wird erläutert, wie Sie mit jQuery den Text aller Tags auf der Seite schnell ändern können, und es werden spezifische Codebeispiele angegeben. Zuerst müssen wir die jQuery-Bibliotheksdatei einführen und sicherstellen, dass der folgende Code in die Seite eingefügt wird: &lt

Verwenden Sie jQuery, um den Textinhalt aller a-Tags zu ändern Verwenden Sie jQuery, um den Textinhalt aller a-Tags zu ändern Feb 28, 2024 pm 05:42 PM

Titel: Verwenden Sie jQuery, um den Textinhalt aller Tags zu ändern. jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur Verarbeitung von DOM-Operationen verwendet wird. Bei der Webentwicklung müssen wir häufig den Textinhalt des Link-Tags (eines Tags) auf der Seite ändern. In diesem Artikel wird erläutert, wie Sie mit jQuery dieses Ziel erreichen, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die jQuery-Bibliothek in die Seite einführen. Fügen Sie den folgenden Code in die HTML-Datei ein:

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Feb 29, 2024 am 09:03 AM

Wie kann man feststellen, ob ein jQuery-Element ein bestimmtes Attribut hat? Wenn Sie jQuery zum Betreiben von DOM-Elementen verwenden, stoßen Sie häufig auf Situationen, in denen Sie feststellen müssen, ob ein Element ein bestimmtes Attribut hat. In diesem Fall können wir diese Funktion einfach mit Hilfe der von jQuery bereitgestellten Methoden implementieren. Im Folgenden werden zwei häufig verwendete Methoden vorgestellt, um festzustellen, ob ein jQuery-Element über bestimmte Attribute verfügt, und um spezifische Codebeispiele anzuhängen. Methode 1: Verwenden Sie die Methode attr() und den Operator typeof //, um zu bestimmen, ob das Element ein bestimmtes Attribut hat

So erstellen Sie ereignisbasierte Anwendungen mit PHP So erstellen Sie ereignisbasierte Anwendungen mit PHP May 04, 2024 pm 02:24 PM

Zu den Methoden zum Erstellen ereignisbasierter Anwendungen in PHP gehört die Verwendung der EventSourceAPI zum Erstellen einer Ereignisquelle und die Verwendung des EventSource-Objekts zum Abhören von Ereignissen auf der Clientseite. Senden Sie Ereignisse mithilfe von Server Sent Events (SSE) und warten Sie auf der Clientseite mithilfe eines XMLHttpRequest-Objekts auf Ereignisse. Ein praktisches Beispiel ist die Verwendung von EventSource zur Aktualisierung der Bestandszahlen in Echtzeit auf einer E-Commerce-Website. Dies wird auf der Serverseite durch zufälliges Ändern des Bestands und Senden von Aktualisierungen erreicht, und der Client wartet über EventSource auf Bestandsaktualisierungen und zeigt diese an Echtzeit.

Verstehen Sie die Rolle und Anwendungsszenarien von eq in jQuery Verstehen Sie die Rolle und Anwendungsszenarien von eq in jQuery Feb 28, 2024 pm 01:15 PM

jQuery ist eine beliebte JavaScript-Bibliothek, die häufig zur DOM-Manipulation und Ereignisbehandlung in Webseiten verwendet wird. In jQuery wird die Methode eq() verwendet, um Elemente an einer bestimmten Indexposition auszuwählen. Die spezifischen Verwendungs- und Anwendungsszenarien sind wie folgt. In jQuery wählt die Methode eq() das Element an einer angegebenen Indexposition aus. Indexpositionen beginnen bei 0 zu zählen, d. h. der Index des ersten Elements ist 0, der Index des zweiten Elements ist 1 und so weiter. Die Syntax der eq()-Methode lautet wie folgt: $("s

See all articles