Maison  >  Article  >  interface Web  >  Quelles sont les différences entre les fonctions d'événement de liaison bind(), one(), on() et live() dans jQuery ?

Quelles sont les différences entre les fonctions d'événement de liaison bind(), one(), on() et live() dans jQuery ?

一个新手
一个新手original
2017-10-10 10:31:001922parcourir

1. La méthode bind()

lie un gestionnaire d'événements à l'événement spécifique de chaque élément correspondant. La logique sous-jacente de la méthode bind() est la méthode on() . La méthode
.bind() est le principal moyen d'attacher un comportement à un document. Tous les objets d'événement JavaScript, tels que le focus, le survol et le redimensionnement, peuvent être transmis en tant que paramètre de type.
Exemple :
.bind() L'utilisation la plus basique est :

$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

Ce code permet à l'élément avec l'ID foo de répondre à l'événement de clic. Lorsque l'utilisateur clique à l'intérieur de l'élément, une boîte d'avertissement apparaîtra.

2. La méthode on()

Lie la fonction de gestionnaire d'événements d'un ou plusieurs événements à l'élément sélectionné. La méthode
on() lie un gestionnaire d'événements à l'élément dans l'objet jQuery actuellement sélectionné. Dans jQuery 1.7, la méthode .on() fournit toutes les fonctionnalités nécessaires pour lier les gestionnaires d'événements .
Quelles sont les différences entre les fonctions dévénement de liaison bind(), one(), on() et live() dans jQuery ?
Description du paramètre :
events : Un ou plusieurs types d'événements séparés par des espaces et un espace de noms facultatif, tel que "click" ou "keydown.myPlugin" .
selector : Une chaîne de sélection pour les descendants de l'élément sélecteur qui déclenche l'événement de filtre. Si le data : Lorsqu'un événement est déclenché, event.data doit être transmis à la fonction de traitement d'événement.
fn : La fonction exécutée lorsque l'événement est déclenché. La valeur false peut également être utilisée comme raccourci pour une fonction qui renvoie false.

3. La méthode one()

lie un gestionnaire d'événement unique à un événement spécifique (comme un clic) de chaque élément correspondant.
Sur chaque objet, ce gestionnaire d'événements ne sera exécuté qu'une seule fois . Les autres règles sont les mêmes que pour la fonction bind(). Ce gestionnaire d'événements recevra un objet événement, qui peut être utilisé pour empêcher le comportement par défaut. Si vous souhaitez annuler le comportement par défaut et empêcher l'événement de se propager, le gestionnaire d'événements doit renvoyer false.
Quelles sont les différences entre les fonctions dévénement de liaison bind(), one(), on() et live() dans jQuery ?
Description du paramètre :
type : Un ou plusieurs événements ajoutés à l'élément. Plusieurs événements séparés par des espaces. Doit être un événement valide.
data : Le mappage de données à transmettre à la fonction de traitement d'événement.
fn : La fonction qui est exécutée chaque fois que l'événement est déclenché.

4. La méthode live()

jQuery attache une fonction de gestionnaire d'événements à tous les éléments correspondants, elle est valide même si cet élément est ajouté ultérieurement.
Quelles sont les différences entre les fonctions dévénement de liaison bind(), one(), on() et live() dans jQuery ?

Cette méthode est essentiellement une variante de la méthode .bind() . Lors de l'utilisation de .bind(), les éléments correspondant au sélecteur auront un gestionnaire d'événements qui leur sera attaché, contrairement aux éléments ajoutés ultérieurement. Vous devez utiliser à nouveau .bind() pour cela.
Délégation d'événement : La méthode
.live() peut être efficace sur un élément qui n'a pas été ajouté au DOM du fait de l'utilisation de la délégation d'événement : le gestionnaire d'événement lié à l'ancêtre L'élément peut répondre aux événements déclenchés sur les descendants. Le gestionnaire d'événements passé à .live() ne sera pas lié à l'élément, mais sera traité comme un gestionnaire d'événements spécial et lié au nœud racine de l'arborescence DOM.
Notes supplémentaires :
.live(), bien qu'utile, ne peut en aucun cas simplement remplacer .bind() en raison de son implémentation spéciale. Les principales différences sont :

  1. Dans jQuery 1.4, la méthode .live() prend en charge les événements personnalisés et tous les événements JavaScript. Dans jQuery 1.4.1, il existe même une prise en charge des événements de focus et de flou (mappés sur les focusin et focusout les plus appropriés et bouillonnants). De plus, dans jQuery 1.4.1, le survol (mappé sur "mouseenter mouseleave") est également pris en charge. Cependant, dans jQuery 1.3.x, seuls les événements JavaScript et les événements personnalisés pris en charge sont pris en charge : click, dblclick, keydown, keypress, keyup, mousedown, mousemove, mouseout, mouseover et mouseup.

  2. .live() ne prend pas entièrement en charge les éléments trouvés via la traversée du DOM. Au lieu de cela, vous devez toujours utiliser la méthode .live() directement après un sélecteur, comme mentionné dans l'exemple précédent.

  3. Lorsqu'une fonction de gestion d'événements est liée à .live() et que vous souhaitez arrêter d'exécuter d'autres fonctions de gestion d'événements, cette fonction doit renvoyer false. Le simple fait d'appeler .stopPropagation() n'y parviendra pas.

Remarque spéciale :

À partir de jQuery 1.7, la méthode .live() n'est plus recommandée. Veuillez utiliser .on() pour ajouter la gestion des événements.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn