Explication détaillée des principes et méthodes de mise en œuvre de la délégation d'événements jQuery
Dans le développement front-end, nous rencontrons souvent des situations où nous devons gérer un grand nombre d'événements d'éléments. L'approche traditionnelle consiste à lier les gestionnaires d'événements à chaque élément, mais lorsque le nombre d'éléments est important, cette approche entraînera une réduction des performances de la page. Afin de gérer plus efficacement les événements d'éléments, jQuery fournit un mécanisme de délégation d'événements (Event Representative).
La délégation d'événements est une technologie qui lie les gestionnaires d'événements aux éléments parents et utilise le mécanisme de diffusion d'événements pour gérer les événements des éléments enfants. Lorsqu'un élément enfant déclenche un événement, l'événement se propage vers le haut le long de l'arborescence DOM et atteint finalement l'élément parent. L'élément parent exécutera le gestionnaire correspondant en déterminant l'élément cible de l'événement. Cette approche réduit le nombre de fois où il faut lier les gestionnaires d’événements et améliore les performances des pages.
La méthode on()
de jQuery est la méthode principale pour implémenter la délégation d'événement. La délégation d'événement est obtenue en liant un gestionnaire d'événement à l'élément parent et en spécifiant le sélecteur d'élément enfant qui déclenche l'événement. on()
方法是实现事件委派的核心方法。通过为父元素绑定事件处理程序,并指定触发事件的子元素选择器来实现事件委派。
下面是一个简单的例子:
<!DOCTYPE html> <html> <head> <title>事件委派示例</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function(){ $("#parent").on("click", "button", function(){ alert("子元素被点击"); }); }); </script> </head> <body> <div id="parent"> <button>点击我</button> <button>点击我</button> <button>点击我</button> </div> </body> </html>
在这个例子中,我们为父元素#parent
绑定了点击事件处理程序,只有当点击子元素button
时才会触发事件。
在jQuery版本1.7之前,可以使用delegate()
方法来实现事件委派。用法类似于on()
$(document).ready(function(){ $("#parent").delegate("button", "click", function(){ alert("子元素被点击"); }); });
#parent
, uniquement lorsque l'on clique sur l'élément enfant bouton
> déclenchera l'événement. delegate()
pour implémenter la délégation d'événements. L'utilisation est similaire à la méthode on()
, mais elle est plus pratique lorsqu'il s'agit d'éléments ajoutés dynamiquement. 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!