jQuery succinctement événements & jQuery

Non limité à un seul événement ready ()

Il est important de garder à l’esprit que vous pouvez déclarer autant de droits personnalisés prêt() événements comme vous voudriez. Vous n'êtes pas limité à attacher un seul .prêt() événement au document. le prêt() les événements sont exécutés dans l'ordre dans lequel ils sont inclus.

Remarques: Passer la fonction jQuery, une fonction - par exemple. jQuery (funciton () // code here) - est un raccourci pour jQuery (document) .ready ().


Attacher / Supprimer des événements en utilisant bind () et unbind ()

En utilisant le lier() méthode - par exemple. jQuery ('a'). bind ('click', function () ) - vous pouvez ajouter n'importe lequel des gestionnaires standard suivants aux éléments DOM appropriés.

  • brouiller
  • concentrer
  • charge
  • redimensionner
  • faire défiler
  • décharger
  • avant le déchargement
  • Cliquez sur
  • dblclick
  • souris vers le bas
  • mouseup
  • déplacer la souris
  • passer la souris
  • sortie de souris
  • changement
  • sélectionner
  • soumettre
  • touche Bas
  • appuyez sur la touche
  • keyup
  • Erreur

Évidemment, selon les normes DOM, seuls certains gestionnaires coïncident avec des éléments particuliers.

En plus de cette liste de gestionnaires standard, vous pouvez également utiliser lier() attacher des gestionnaires personnalisés jQuery - par exemple. mouseenter et laisser la souris - ainsi que tous les gestionnaires personnalisés que vous pouvez créer.

Pour supprimer les gestionnaires standard ou personnalisés, nous passons simplement le délier() méthode le nom du gestionnaire ou le nom du gestionnaire personnalisé qui doit être supprimé - par exemple. jQuery ('a'). unbind ('click'). Si aucun paramètre n'est passé à délier(), il supprimera tous les gestionnaires attachés à un élément.

Ces concepts qui viennent d'être discutés sont exprimés dans l'exemple de code ci-dessous..

     

Remarques: jQuery fournit plusieurs raccourcis vers la lier() méthode à utiliser avec tous les événements DOM standard, ce qui exclut les événements jQuery personnalisés tels que mouseenter et laisser la souris. L'utilisation de ces raccourcis implique simplement de substituer le nom de l'événement au nom de la méthode - par exemple. .Cliquez sur(), mouseout (), concentrer().

Vous pouvez attacher un nombre illimité de gestionnaires à un seul élément DOM à l'aide de jQuery..

jQuery fournit le un() méthode de gestion des événements pour lier de manière commode un événement aux éléments DOM qui seront exécutés une fois, puis supprimés. le un() méthode est juste un wrapper pour lier() et délier().


Invoquer par programme un gestionnaire spécifique via des méthodes d'événement courtes

La syntaxe de raccourci - par exemple. .Cliquez sur(), mouseout (), et concentrer() - pour lier un gestionnaire d’événements à un élément DOM peut également être utilisé pour appeler des gestionnaires par programmation. Pour ce faire, utilisez simplement la méthode d’événement de raccourci sans lui transmettre de fonction. En théorie, cela signifie que nous pouvons lier un gestionnaire à un élément DOM, puis appeler immédiatement ce gestionnaire. Ci-dessous, je le démontre via le Cliquez sur() un événement.

    Dis salut  Dis salut     

Remarques: Il est également possible d'utiliser l'événement déclencheur() méthode pour invoquer des gestionnaires spécifiques - par exemple. jQuery ('a'). click (function () alert ('hi')). trigger ('clic'). Cela fonctionnera également avec les événements namespaced et custom.


jQuery normalise l'objet événement

jQuery normalise l'objet événement conformément aux normes W3C. Cela signifie que lorsque l'objet d'événement est passé à un gestionnaire de fonctions, vous n'avez pas à vous soucier de la mise en œuvre spécifique à votre navigateur de l'objet d'événement (par exemple, Internet Explorer). window.event). Vous pouvez utiliser les attributs et les méthodes suivants de l'objet événement sans soucis, car jQuery normalise l'objet événement..

Attributs d'objet d'événement

  • type d'événement
  • event.target
  • event.data
  • event.relatedTarget
  • event.currentTarget
  • event.pageX
  • event.pageY
  • event.result
  • event.timeStamp

Méthodes d'objet d'événement

  • event.preventDefault ()
  • event.isDefaultPrevented ()
  • event.stopPropagation ()
  • event.isPropagationStopped ()
  • event.stopImmediatePropagation ()
  • event.isImmediatePropagationStopped ()

Pour accéder à l'objet d'événement jQuery normalisé, transmettez simplement la fonction anonyme, transmise à une méthode d'événement jQuery, un paramètre nommé "événement" (ou appelez-le comme vous voulez). Ensuite, dans la fonction de rappel anonyme, utilisez le paramètre pour accéder à l'objet événement. Ci-dessous un exemple codé de ce concept.

       

Grokking Event Namespacing

Souvent, nous avons un objet dans le DOM qui doit avoir plusieurs fonctions liées à un seul gestionnaire d’événements. Par exemple, prenons le gestionnaire de redimensionnement. En utilisant jQuery, nous pouvons ajouter autant de fonctions à la window.resize gestionnaire comme nous aimons. Mais que se passe-t-il lorsqu'il ne faut supprimer qu'une seule de ces fonctions, mais pas toutes? Si on utilise $ (fenêtre) .unbind ('redimensionner'), toutes les fonctions attachées à la window.resize gestionnaire sera supprimé. En nommant un gestionnaire (par exemple. resize.unique), nous pouvons attribuer un crochet unique à une fonction spécifique pour la suppression.

       

Dans le code ci-dessus, nous ajoutons deux fonctions au gestionnaire de redimensionnement. Le deuxième événement de redimensionnement (ordre du document) ajouté utilise l'espacement de noms d'événement, puis le supprime immédiatement à l'aide de délier(). Je l'ai fait pour faire remarquer que la première fonction attachée n'est pas supprimée. Les événements d'espacement de noms nous permettent d'étiqueter et de supprimer des fonctions uniques attribuées au même gestionnaire sur un seul élément DOM.

En plus de dissocier une fonction spécifique associée à un seul élément et à un gestionnaire DOM, nous pouvons également utiliser l'espacement de nom d'événement pour invoquer exclusivement (à l'aide de déclencheur()) un gestionnaire spécifique et une fonction attachée à un élément DOM. Dans le code ci-dessous, deux événements de clic sont ajoutés à , puis en utilisant namespacing, un seul est invoqué.

    Cliquez sur    

Remarques: Il n'y a pas de limite à la profondeur ou au nombre d'espaces de noms utilisés - par exemple. resize.layout.headerFooterContent.

L’espacement de noms est un excellent moyen de protéger, d’appeler et de supprimer tous les gestionnaires exclusifs qu’un plug-in peut exiger..

L'espace de nommage fonctionne avec les événements personnalisés ainsi que les événements standard - par exemple. click.unique ou myclick.unique.


Délégation d'événements Grokking

La délégation d'événements repose sur la propagation d'événements (a.k.a. bubbling). Lorsque vous cliquez sur un à l'intérieur d'un

  • , qui est à l'intérieur d'un