À partir de la version 1.7+, JQuery fournit on() et off() pour lier et annuler les fonctions de traitement d'événements. Ces deux API présentent de nombreuses similitudes avec les fonctions bind() et unbind() initialement fournies par JQuery, mais présentent également quelques différences. Pour une introduction détaillée à la liaison et à la dissociation, veuillez vous référer à cet article.
Les signatures de fonction de on() et bind() sont les suivantes :
bind(type, [data], fn) on(type,[selector],[data],fn)
Vous pouvez voir que la différence entre les deux fonctions est : si la valeur du paramètre du sélecteur est prise en charge. En raison de la fonctionnalité de diffusion d'événements de JavaScript, si nous enregistrons un gestionnaire d'événements sur l'élément parent, lorsque l'événement se produit sur l'élément enfant, le gestionnaire d'événements sur l'élément parent sera également déclenché. Si lors de l'utilisation de on, ne définit pas le sélecteur, alors il n'y a aucune différence entre on et bind.
<p id="parent"> <input type="button" value="a" id="a"/> <input type="button" value="b" id="b"/> </p>
Le code ci-dessus, si nous utilisons bind() pour lier le traitement des événements de clic sur la fonction parent, lorsque le bouton a ou b est cliqué, la fonction de traitement des événements sera exécutée. Si nous voulons déclencher lorsque l'on clique sur a mais pas lorsque l'on clique sur b, alors nous pouvons utiliser on, le code est le suivant
$("#parent").on("click","#a",function(){ alert($(this).attr("id")); });
Comme vous pouvez le voir : le sélecteur de paramètre de la fonction on() est de permettre à l'élément parent de filtrer les événements qui se produisent sur les éléments enfants lorsque des événements bouillonnent. Si bind est utilisé, alors une telle capacité n'existe pas et les événements qui se produisent sur l'élément enfant déclencheront certainement l'événement de l'élément parent.
Il y a un autre point à noter : la fonction de traitement d'événements liée à on peut également être utilisée pour les nouveaux éléments ajoutés dans le futur, et a le même effet que délégué, mais bind ne le fait pas .
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!