Heim Web-Frontend js-Tutorial Detaillierte Erläuterung der Verwendung der jQuery-Ereignisbindung (mit dem Unterschied zwischen bind und live)_jquery

Detaillierte Erläuterung der Verwendung der jQuery-Ereignisbindung (mit dem Unterschied zwischen bind und live)_jquery

May 16, 2016 pm 03:19 PM
jquery 事件 绑定

In diesem Artikel wird die Verwendung der jQuery-Ereignisbindung anhand von Beispielen analysiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

html:

<a href="#" onclick="addBtn()">addBtn</a>
<div id="mDiv">
  <button class="cBtn" onclick="alert(11111)">button1</button>
  <button class="cBtn">button2</button>
  <button class="cBtn">button3</button>
</div>

Nach dem Login kopieren

Javascript:

<script type="text/javascript">
 function addBtn(){
   $('#mDiv').append(' <button class="cBtn">button5</button>')
 }
jQuery(function($){
//使用on代替live和delegate(live由于性能原因已经被废弃,被delegate代替),新添加到mDiv的button依然会有绑定的事件
$('#mDiv').on('click','.cBtn',function(index, eleDom){
alert($(this).html())
 });
//使用on代替bind
$('.cBtn').on('click',function(){
alert($(this).html())
 })
//注意:
/*
1、无论使用bind、on、delegate、click(function())都是重复绑定,即绑定的同类型事件被放到一个事件队列中,依次执行,后绑定的事件不会替换之前绑定的,对于on使用off,delegate用undelegate,bind及click使用unbind来解除绑定,例如unbind(type)传递为事件类型,如果不传type则解出所有事件绑定;需要注意的是元素本身自带的事件无法unbind(如button1)
2、要绑定自定义事件,如'open',以上函数都可以使用,但激活需要使用trigger
总结:
建议使用on函数,绑定形式为$('.myClass').on({
click:function(eleDom){
...do someting...
},
dbclick:function(eleDom){
...do someting...
}
....
})
*/
}
</script>

Nach dem Login kopieren

Einige Anmerkungen:

bind(type,[data],fn) bindet einen Event-Handler an ein bestimmtes Ereignis für jedes übereinstimmende Element

Code kopieren Der Code lautet wie folgt:
$("a").bind("click" ,function( ){alert("ok");});

live(type,[data],fn) fügt allen übereinstimmenden Elementen einen Event-Handler hinzu, auch wenn das Element später hinzugefügt wird
Code kopieren Der Code lautet wie folgt:
$("a").live("click" ,function( ){alert("ok");});

delegate(selector,[type],[data],fn) fügt einen oder mehrere Event-Handler zum angegebenen Element (einem untergeordneten Element des ausgewählten Elements) hinzu und gibt die Funktion an, die ausgeführt werden soll, wenn diese Ereignisse auftreten
Code kopieren Der Code lautet wie folgt:
$("#container").delegate("a "," click",function(){alert("ok");})

on(events,[selector],[data],fn) Event-Handler-Funktion, die ein oder mehrere Ereignisse an das ausgewählte Element bindet

Unterschied:

.bind() ist direkt an das Element

gebunden

.live() wird durch Sprudeln an das Element gebunden. Eher geeignet für Listentypen, die an den DOM-Knoten des Dokuments gebunden sind. Der Vorteil von .bind() besteht darin, dass es dynamische Daten unterstützt.

.delegate() ist ein genauerer Ereignis-Proxy für den Einsatz in kleinem Maßstab und seine Leistung ist besser als .live()

.on() ist die neueste Version 1.9, die die vorherigen drei Methoden des neuen Ereignisbindungsmechanismus

integriert

Zusätzlich: Der Unterschied zwischen binden und leben

Es gibt drei Möglichkeiten, Ereignisse in jQuery zu binden: Nehmen Sie das Klickereignis als Beispiel

(1)target.click(function(){});

(2)target.bind("click",function(){});

(3)target.live("click",function(){});

Die erste Methode ist leicht zu verstehen. Tatsächlich ähnelt sie der Verwendung von gewöhnlichem JS, außer dass eine Methode fehlt

Bei der zweiten und dritten Methode handelt es sich allesamt um Bindungsereignisse, aber sie sind im Folgenden sehr unterschiedlich, da sie häufig verwendet werden, wenn Sie das jQuery-Framework verwenden. Achten Sie besonders auf den Unterschied zwischen ihnen.

【Der Unterschied zwischen binden und leben】

Die Live-Methode ist eigentlich eine Variante der Bind-Methode. Sie binden beide ein Ereignis an ein Element, aber die Bind-Methode kann Ereignisse nur an das aktuell vorhandene Element binden ist für von JS und anderen Methoden neu generierte Elemente ungültig. Die Live-Methode gleicht diesen Fehler der Bindemethode aus. Sie kann auch entsprechende Ereignisse an die später generierten Elemente binden. Wie wird diese Funktion der Live-Methode implementiert? Lassen Sie uns unten das Implementierungsprinzip besprechen.

Der Grund, warum die Live-Methode auch entsprechende Ereignisse an später generierte Elemente binden kann, ist die sogenannte „Ereignisdelegation“, die bedeutet, dass an Vorgängerelemente gebundene Ereignisse zur Verwendung gebunden werden können . Der Verarbeitungsmechanismus der Live-Methode besteht darin, das Ereignis an den Wurzelknoten des DOM-Baums zu binden, anstatt es direkt an ein Element zu binden. Geben Sie ein Beispiel zur Veranschaulichung:

$(".clickMe").live("click",fn);
$("body").append("<div class='clickMe'>测试live方法的步骤</div>");

Nach dem Login kopieren

Wenn wir auf dieses neue Element klicken, werden die folgenden Schritte ausgeführt:

(1) Generieren Sie ein Klickereignis und übergeben Sie es zur Verarbeitung an das Div

(2) Da kein Ereignis direkt an das Div gebunden ist, wird das Ereignis direkt an den DOM-Baum weitergeleitet

(3) Ereignisse sprudeln weiterhin zum Wurzelknoten des DOM-Baums. Standardmäßig ist das Klickereignis an den Wurzelknoten

gebunden

(4) Führen Sie das an Live gebundene Klickereignis aus

(5) Ermitteln Sie, ob das an das Ereignis gebundene Objekt vorhanden ist, und bestimmen Sie, ob die Ausführung des gebundenen Ereignisses fortgesetzt werden muss. Das Erkennen von Ereignisobjekten erfolgt durch Erkennen von

Code kopieren Der Code lautet wie folgt:
$(event.target).closest('.clickMe')
Kann dies erreicht werden, indem passende Elemente gefunden werden?

(6) Wenn durch den Test von (5) das an das Ereignis gebundene Objekt vorhanden ist, wird das gebundene Ereignis ausgeführt.

Da die Live-Methode nur dann erkennt, ob das an das Ereignis gebundene Objekt vorhanden ist, wenn ein Ereignis auftritt, kann die Live-Methode später hinzugefügte Elemente und Ereignisbindungen implementieren. Im Gegensatz dazu bestimmt bind, ob das Element, an das das Ereignis gebunden ist, während der Bindungsphase des Ereignisses vorhanden ist, und bindet nur an das aktuelle Element, nicht an den übergeordneten Knoten.

Laut der obigen Analyse sind die Vorteile von Live wirklich groß. Warum sollten wir also die Bindungsmethode verwenden? Der Grund, warum jQuery die Bindungsmethode beibehält, anstatt die Live-Methode zum Ersetzen von Bindung zu verwenden, liegt darin, dass Live in einigen Fällen die Bindung nicht vollständig ersetzen kann. Die Hauptunterschiede sind wie folgt:

(1) Die Bind-Methode kann jedes JavaScript-Ereignis binden, während die Live-Methode in jQuery 1.3 nur Click, Dblclick, Keydown, Keypress, Keyup, Mousemove, Mouseout, Mouseover und Mouseup unterstützt. 1, Focus- und Blue-Events werden sogar unterstützt (zugeordnet zu Focusin und Focusout, die besser geeignet sind und zu Blasenbildung führen können). Darüber hinaus wird in jQuery 1.4.1 auch Hover (zugeordnet zu „mouseenter mouseleave“) unterstützt.

(2) live() unterstützt Elemente, die durch DOM-Traversal gefunden werden, nicht vollständig. Stattdessen sollten Sie die Methode .live() immer direkt nach einem Selektor verwenden.

(3) Wenn ein Element die Live-Methode zum Binden von Ereignissen verwendet und Sie die Zustellung oder das Sprudeln von Ereignissen verhindern möchten, müssen Sie in der Funktion false zurückgeben, um die Zustellung von Ereignissen nicht zu verhindern sprudelnd

Leser, die an weiteren Inhalten zu jQuery-Ereignissen und -Methoden interessiert sind, können sich das Spezialthema dieser Website ansehen: „Zusammenfassung der allgemeinen Verwendung und Techniken von jQuery-Ereignissen

Ich hoffe, dass dieser Artikel allen in der jQuery-Programmierung hilfreich sein wird.

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)

BTCC-Tutorial: Wie kann ich die MetaMask-Wallet an der BTCC-Börse binden und verwenden? BTCC-Tutorial: Wie kann ich die MetaMask-Wallet an der BTCC-Börse binden und verwenden? Apr 26, 2024 am 09:40 AM

MetaMask (auf Chinesisch auch Little Fox Wallet genannt) ist eine kostenlose und beliebte Verschlüsselungs-Wallet-Software. Derzeit unterstützt BTCC die Bindung an die MetaMask-Wallet. Nach der Bindung können Sie sich mit der MetaMask-Wallet schnell anmelden, Werte speichern, Münzen kaufen usw. und bei der erstmaligen Bindung einen Testbonus von 20 USDT erhalten. Im BTCCMetaMask-Wallet-Tutorial stellen wir detailliert vor, wie man MetaMask registriert und verwendet und wie man das Little Fox-Wallet in BTCC bindet und verwendet. Was ist die MetaMask-Wallet? Mit über 30 Millionen Nutzern ist MetaMask Little Fox Wallet heute eines der beliebtesten Kryptowährungs-Wallets. Die Nutzung ist kostenlos und kann als Erweiterung im Netzwerk installiert werden

Wie binde ich ein Unterkonto auf Xiaohongshu? Wie prüft es, ob das Konto normal ist? Wie binde ich ein Unterkonto auf Xiaohongshu? Wie prüft es, ob das Konto normal ist? Mar 21, 2024 pm 10:11 PM

Im heutigen Zeitalter der Informationsexplosion wird der Aufbau einer persönlichen Marke und eines Unternehmensimages immer wichtiger. Als führende Fashion-Life-Sharing-Plattform in China hat Xiaohongshu die Aufmerksamkeit und Beteiligung vieler Nutzer auf sich gezogen. Für diejenigen Nutzer, die ihren Einfluss erweitern und die Effizienz der Inhaltsverbreitung verbessern möchten, ist die Bindung von Unterkonten ein wirksames Mittel geworden. Wie bindet Xiaohongshu also ein Unterkonto? Wie kann ich überprüfen, ob das Konto normal ist? Dieser Artikel beantwortet diese Fragen ausführlich für Sie. 1. Wie binde ich ein Unterkonto auf Xiaohongshu? 1. Melden Sie sich bei Ihrem Hauptkonto an: Zuerst müssen Sie sich bei Ihrem Xiaohongshu-Hauptkonto anmelden. 2. Öffnen Sie das Einstellungsmenü: Klicken Sie oben rechts auf „Ich“ und wählen Sie dann „Einstellungen“. 3. Geben Sie die Kontoverwaltung ein: Suchen Sie im Einstellungsmenü nach der Option „Kontoverwaltung“ oder „Kontoassistent“ und klicken Sie darauf

Schritte und Methoden, um Douyin in Toutiao zu binden Schritte und Methoden, um Douyin in Toutiao zu binden Mar 22, 2024 pm 05:56 PM

1. Öffnen Sie Toutiao. 2. Klicken Sie unten rechts auf „Mein“. 3. Klicken Sie auf [Systemeinstellungen]. 4. Klicken Sie auf [Konto- und Datenschutzeinstellungen]. 5. Klicken Sie auf die Schaltfläche auf der rechten Seite von [Douyin], um Douyin zu binden.

Wie binde ich die Cainiao-App an Pinduoduo? Wie füge ich den Cainiao Wrap zur Pinduoduo-Plattform hinzu? Wie binde ich die Cainiao-App an Pinduoduo? Wie füge ich den Cainiao Wrap zur Pinduoduo-Plattform hinzu? Mar 19, 2024 pm 02:30 PM

Die Cainiao-App ist eine Plattform, die Ihnen verschiedene Logistikinformationen liefern kann. Die Funktionen hier sind sehr leistungsstark und einfach zu verwenden. Wenn Sie logistische Probleme haben, können diese auf jeden Fall gelöst werden -Stopp-Service kann alles rechtzeitig lösen, die Expresslieferung abholen, versenden usw. Wir haben mit verschiedenen Plattformen zusammengearbeitet und können manchmal abgefragt werden Es kann vorkommen, dass die auf Pinduoduo gekauften Waren keine Logistikinformationen anzeigen können. Um dies zu erreichen, müssen Sie die spezifischen Methoden unten klären, und jeder kann einen Blick darauf werfen. So binden Sie Cainiao an ein Pinduoduo-Konto: 1. Öffnen Sie die Cainiao-App und gehen Sie zur Hauptseite

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

So binden Sie die Cainiao-APP an Pinduoduo. So binden Sie die Cainiao-APP an Pinduoduo So binden Sie die Cainiao-APP an Pinduoduo. So binden Sie die Cainiao-APP an Pinduoduo Mar 19, 2024 pm 05:16 PM

Wissen Sie, wie Sie Pinduoduo binden, wenn Sie Cainiao Wrap verwenden? Die offizielle Version der Cainiao Wrap-App synchronisiert einige Logistikinformationen von Pinduoduo nicht automatisch auf dieser Plattform. Sie können lediglich die Bestellnummer kopieren oder Ihr Mobiltelefon überprüfen wenn es Expressversandinformationen gibt. Natürlich müssen diese alle manuell ausgefüllt werden. Wenn Sie mehr wissen möchten, schauen Sie sich den Editor an. So binden Sie die Cainiao-APP an Pinduoduo 1. Öffnen Sie die Cainiao-APP und klicken Sie auf „Paketanleitung“ in der oberen linken Ecke der Hauptseite. 2. In der Benutzeroberfläche gibt es viele Shopping-Websites und Konten können gebunden werden. 3. Klicken Sie, um andere E-Commerce-Plattformen zu importieren. 4. Benutzerautorisierung: Klicken Sie auf Pinduoduo, um zur Benutzeroberfläche zu gelangen

So binden Sie die Xiaomi-Auto-App an das Ladesäulengerät So binden Sie die Xiaomi-Auto-App an das Ladesäulengerät Apr 01, 2024 pm 06:52 PM

Das neueste von Xiaomi auf den Markt gebrachte Modellauto Mi su7 hat verschiedene heiße Suchlisten dominiert. Viele Benutzer, die zufällig ein Auto kaufen möchten, haben sich für den Kauf eines Modellautos Xiaomi su7 entschieden Wenn Sie sich dazu entschließen, eine Ladesäule zu Hause zum Aufladen zu verwenden, wird Ihnen dieses Tutorial eine ausführliche Einführung geben. Ich hoffe, es kann Ihnen helfen. Zuerst öffnen wir die mobile Xiaomi-App, klicken auf die Schaltfläche „Mein“ in der unteren rechten Ecke und sehen dann in der Benutzeroberfläche „Mein“ die Option „Heimladestapel“. Klicken Sie nach dem Aufrufen der Seite, die den Ladestapel bindet, auf den Scancode Klicken Sie unten auf die Schaltfläche und scannen Sie den QR-Code auf der Ladesäule. Mit dem QR-Code können Sie die Ladesäule an die App binden.

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

See all articles