JQuery convertit-il en interne les clés d'attribut de données HTML5 en minuscules?

J'essaie de faire correspondre mon style de codage JavaScript à mon style de codage Zend autant que possible, ce qui utilise camelCase. Donc, dans mes attributs de données HTML5, je les nomme comme dans cet exemple:

<button class="action" data-actionClass="user" data-actionMethod="delete" data-actionRequest="/user/delete/user-id/1" data-actionComplete="{reload:users}">Delete User #1</button> <div id="users" data-reloadRequest="/user/index"> ... </div> 

Assez de manière discrète pour exploiter Jquery pour les actions, mais lorsque j'appelle $ ('.action'). Data (), les noms des attributs sont convertis en minuscules.

Des solutions de contournement pour cela?

Je n'ai jamais que les variables JavaScript devaient avoir des traits en eux, et je ne comprends pas pourquoi jQuery me fait cela en interne. Ou peut-être que c'est HTML5?

Si tu utilises

 data-action-method="delete" 

Alors vous pouvez accéder à l'attribut avec

 $('.action').data('actionMethod') 

Cela fait partie de l' API DOM HTML5 :

Les attributs de données personnalisées sont transformés en une clé pour l'entrée DOMStringMap avec les règles suivantes:

  • Tout tiret (U + 002D) est supprimé;
  • Toute lettre suivant un tableau de bord (U + 002D), avant son retrait, est définie dans son équivalent en majuscule.

Tout d'abord, voir cette partie du code source de JQuery, cela suppose que vous avez des attributs minuscules.

Deuxièmement, par convention, tous les attributs HTML5 doivent être en minuscules, voir: http://www.htmlbasictutor.ca/html-tag-attributes.htm

Enfin, soyez averti que vous pourriez rencontrer d'autres problèmes si vous insistez sur l'utilisation de cas en haut, voir Django: Impossible d'ajouter le nom de l'attribut UPPERCASE dans l'élément d'entrée HTML