jQuery $(document).ready et UpdatePanels : un look raffiné
Lors de l'utilisation de jQuery pour appliquer des effets de survol de la souris aux éléments d'un UpdatePanel, le chargement initial de la page fonctionne comme prévu. Cependant, lors des mises à jour partielles de page initiées par UpdatePanel, les effets de survol cessent de fonctionner dans cette zone spécifique.
Cela se produit parce que UpdatePanel révise le contenu de son panneau, éliminant ainsi tout abonnement à des événements attaché aux éléments précédents. . Pour résoudre ce problème, il est recommandé de se réabonner aux événements requis après chaque mise à jour. Ceci peut être réalisé en combinant $(document).ready pour le chargement initial avec l'objet PageRequestManager de Microsoft pour les mises à jour ultérieures.
Le PageRequestManager, un objet JavaScript automatiquement disponible lorsqu'un UpdatePanel est présent, fournit un événement endRequest qui déclenche une fois la mise à jour terminée. Cela peut être exploité pour relier à nouveau les événements jQuery, comme indiqué ci-dessous :
$(document).ready(function() { // Initial event binding }); var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function() { // Event re-binding after update });
L'événement PageRequestManager fournit un accès à l'expéditeur et à eventArgs, permettant un contrôle plus précis sur la nouvelle liaison. Pour plus de détails, reportez-vous à la documentation de Microsoft : msdn.microsoft.com/.../bb383810.aspx
Une approche alternative, particulièrement adaptée aux scénarios hautement dynamiques, consiste à utiliser la méthode .on() de jQuery. .on() offre une efficacité améliorée par rapport aux réabonnements fréquents. Cependant, il est essentiel de lire attentivement la documentation avant de prendre une décision, car tous les plugins jQuery ne peuvent pas être facilement refactorisés pour utiliser .on(). Dans de tels cas, les réabonnements restent une solution plus pratique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!