Verarbeiten Sie Ereignisse in UpdatePanels mit $(document).ready von jQuery
Wenn Sie mit Elementen in UpdatePanels mit jQuery arbeiten, verlassen Sie sich ausschließlich auf $( document).ready-Ereignisbindung kann unzureichend sein. Bei teilweisen Seitenaktualisierungen funktionieren diese Ereignishandler im aktualisierten Bereich nicht mehr.
Empfohlener Ansatz
Um dieses Problem zu beheben, sollten Sie den folgenden Ansatz in Betracht ziehen:
Initial Binding with $(document).ready:
Binden Sie die Event-Handler beim ersten Laden der Seite mit an die relevanten Elemente $(document).ready.
Erneutes Abonnement für Page Request Manager:
Abonnieren Sie das endRequest-Ereignis des PageRequestManagers von Microsoft. Dieses Ereignis wird nach teilweisen Seitenaktualisierungen ausgelöst. Binden Sie innerhalb des Event-Handlers die jQuery-Event-Handler erneut an die jetzt aktualisierten Elemente.
Dieses Snippet veranschaulicht den Ansatz:
$(document).ready(function() { // Initial binding }); var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function() { // Re-binding });
Alternativer Ansatz
Erwägen Sie alternativ die Verwendung der .on()-Methode von jQuery, die effizienter ist als ein erneutes Abonnement. Bewerten Sie diesen Ansatz jedoch sorgfältig, um sicherzustellen, dass er Ihren spezifischen Anforderungen entspricht. Einzelheiten zu .on() finden Sie in der jQuery-Dokumentation:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3