Heim >Web-Frontend >js-Tutorial >Sollten Sie alle jQuery-Ereignisse immer an $(document) binden?
Sollten alle jQuery-Ereignisse an $(document) gebunden sein?
In dieser ausführlichen Diskussion wird die Frage gestellt, ob alle jQuery-Ereignisse gebunden sein sollten Das an das Dokumentobjekt $(document) gebundene Objekt wird untersucht.
Bedenken und Überlegungen
Das Poster verband Ereignisse zunächst direkt mit bestimmten Elementen, indem es Folgendes verwendete:
$('.my-widget a').click(function() { $(this).toggleClass('active'); });
Später erfuhren sie von den angeblichen Leistungsvorteilen der Ereignisdelegation:
$('.my-widget').on('click','a',function() { $(this).toggleClass('active'); });
Allerdings war diese Methode bei der Handhabung dynamisch hinzugefügter Elemente unzureichend. Um dieses Problem zu lösen, begann der Poster, alle Ereignisse wie folgt an $(document) anzuhängen:
$(document).on('click.my-widget-namespace', '.my-widget a', function() { $(this).toggleClass('active'); });
Dieser Ansatz erfüllte seine Anforderungen an die Handhabung dynamischer Inhalte, Ereignisvorteile, schnelle Leistung und einfache Verwaltung.
Antwort und Überlegungen
Entgegen der ursprünglichen Idee des Posters, Bindung aller Ereignisse an $(Dokument) ist nicht zu empfehlen. Hier sind die Gründe dafür:
Best Practices für die Ereignisbindung
Um die Ereignisabwicklung zu optimieren, befolgen Sie diese Richtlinien:
Zusammenfassend lässt sich sagen, dass die Ereignisdelegierung zwar gewisse Vorteile bietet, es jedoch entscheidend ist, sie selektiv zu verwenden und Ereignisse für eine optimale Leistung an die entsprechende Ebene im DOM-Baum zu binden.
Das obige ist der detaillierte Inhalt vonSollten Sie alle jQuery-Ereignisse immer an $(document) binden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!