9 votes

Quels sont les crochets fournis dans jQuery ?

Officiellement seulement $.cssHooks est documenté dans Documentation de l'API jQuery y $.valHooks est mentionné dans une phrase pour une solution de contournement d'un problème connu en .val() .

Je me demande combien de crochets il y a dans jQuery en plus de ces 2, et si nous devrions utiliser $.valHooks dans le développement de nos plugins ? Si c'est le cas, je pense que cela devrait être documenté comme un sujet dédié au lieu d'une seule phrase.

10voto

Haralan Dobrev Points 2682

Il existe 8 types différents de crochets exposés.

Il y en a un autre pour un usage interne seulement (qui est exposé). jQuery._queueHooks() .

Il y a également deux autres crochets : nodeHook y boolHook qui sont utilisés en interne et dont la fonctionnalité est fondamentalement intégrée dans les jQuery.attrHooks y jQuery.valHooks .

Voici les plus importantes :

  • jQuery.attrHooks

    • Définir le type sur un radio après la valeur réinitialise la valeur dans IE6-9.
    • Définir contenteditable à faux sur les déménagements ( Bogue n° 10429 ).
    • Définir la largeur et la hauteur à auto au lieu de 0 sur une chaîne vide ( Bogue n° 8150 )
    • Certains attributs nécessitent un appel spécial sur IE - href , src , width y height .
    • Retourner à undefined en cas de chaîne vide pour le style attribut.
    • Correction du get/set pour le value propriété dans l'ancien IE
    • Lors de la lecture des valeurs d'attributs, si aucun crochet n'est défini, il utilise l'un ou l'autre des éléments suivants boolHook o nodeHook (ce qui est identique à jQuery.valHooks.button ).
    • Peut être utilisé pour attacher des crochets supplémentaires lors de l'obtention/la définition d'un attribut d'un élément.
  • jQuery.propHooks

    • href / src devraient obtenir l'URL normalisée complète ( Bogue n°10299 , Bogue n° 12915 ).
    • Correction de "Safari indique mal la propriété sélectionnée par défaut d'une option".
    • Peut être utilisé pour attacher des crochets supplémentaires lors de l'obtention/la définition d'une propriété d'un élément.
  • jQuery.Tween.propHooks

    jQuery.Tween est utilisé pour les animations et autres.

    • Correction pour scrollTop y scrollLeft dans IE8 - sera supprimé dans jQuery 2.0.
    • D'autres trucs d'animation.
  • jQuery.cssHooks

    Ajout de crochets pour les propriétés de style afin de remplacer le comportement par défaut pour obtenir et définir une propriété de style.

    • Correction pour l'obtention/le réglage de la valeur de la propriété CSS opacity .
    • Correction pour obtenir witdth y height en fonction de la display propriété.
    • Correction pour le réglage width y height en fonction de la box-sizing propriété.
    • Correction pour l'obtention de la marge-droite.
    • Correction pour Bogue Webkit #29084 - getComputedStyle renvoie le pourcentage quand il est spécifié pour le haut/gauche/bas/droite
    • Utilisé dans jQuery.fn.animate pour développer les propriétés de style spécifiées comme margin , padding y border .
    • Utilisé dans d'autres domaines jQuery.fn.animate des trucs connexes.
    • Définition de diverses propriétés CSS pour l'arrière-plan inherit est réalisé sans utiliser jQuery.cssHooks parce que c'est plus court comme ça.
    • Peut être utilisé pour attacher des crochets supplémentaires lors de l'obtention/du réglage d'une propriété de style individuelle d'un élément.
  • jQuery.valHooks

    • Corrige un bug de Blackberry 4.7 pour option éléments ( Bogue n° 6932 ).
    • Utilisé pour lire la valeur sélectionnée pour select éléments.
    • Correction de la lecture de certaines propriétés de la button élément - id , name y coords . La même chose que nodeHook (voir ci-dessus).
    • Corrige l'incompatibilité lors de la vérification radio y checkbox les entrées entre Webkit et les autres.
    • Peut être utilisé pour attacher des crochets supplémentaires lors de l'obtention/la définition de la valeur d'un élément d'entrée.
  • jQuery.event.fixHooks

    Un support pour jQuery.event.mouseHooks y jQuery.event.keyHooks qui doivent être corrigés et normalisés en fonction de la prise en charge du navigateur actuel.

  • jQuery.event.mouseHooks

    • Utilisé pour transférer certaines propriétés de l'original MouseEvent à l'objet événement de jQuery.
    • Normalise event.which (quel bouton de la souris a été utilisé) d'un navigateur à l'autre. event.button n'est pas normalisé.
    • Calcule pageX , pageY , clientX , clientY et d'autres si elles sont manquantes et de les définir à l'objet d'événement jQuery.
  • jQuery.event.keyHooks

    • Utilisé pour transférer certaines propriétés de l'original KeyboardEvent à l'objet événement jQuery.
    • Normalise event.which (le code de caractère du bouton qui a été pressé) à travers les navigateurs. Dans l'événement original, cela pourrait être char , charCode , key o keyCode .

De la source de jQuery 1.9.1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X