JQUERY   8

key.js

Guest on 24th May 2021 03:33:30 AM

  1. steal('jquery/event').then(function($){
  2.       var keymap = {},
  3.             reverseKeyMap = {};
  4.            
  5.       /**
  6.        * @function jQuery.event.key
  7.        * @parent jQuery.Event.prototype.key
  8.        *
  9.        * Allows you to set alternate key maps or overwrite existing key codes.
  10.        * For example::
  11.        *
  12.        *     $.event.key({"~" : 177});
  13.        *
  14.        * @param {Object} map A map of character - keycode pairs.
  15.        */
  16.       $.event.key = function(map){
  17.             $.extend(keymap, map);
  18.             for(var name in map){
  19.                   reverseKeyMap[map[name]] = name;
  20.             }
  21.       };
  22.      
  23.       $.event.key({
  24.             //backspace
  25.             '\b':'8',
  26.            
  27.             //tab
  28.             '\t':'9',
  29.            
  30.             //enter
  31.             '\r':'13',
  32.            
  33.             //special
  34.             'shift':'16','ctrl':'17','alt':'18',
  35.            
  36.             //weird
  37.             'pause-break':'19',
  38.             'caps':'20',
  39.             'escape':'27',
  40.             'num-lock':'144',
  41.             'scroll-lock':'145',
  42.             'print' : '44',
  43.            
  44.             //navigation
  45.             'page-up':'33','page-down':'34','end':'35','home':'36',
  46.             'left':'37','up':'38','right':'39','down':'40','insert':'45','delete':'46',
  47.            
  48.             //normal characters
  49.             ' ':'32',
  50.             '0':'48','1':'49','2':'50','3':'51','4':'52','5':'53','6':'54','7':'55','8':'56','9':'57',
  51.             'a':'65','b':'66','c':'67','d':'68','e':'69','f':'70','g':'71','h':'72','i':'73','j':'74','k':'75','l':'76','m':'77',
  52.             'n':'78','o':'79','p':'80','q':'81','r':'82','s':'83','t':'84','u':'85','v':'86','w':'87','x':'88','y':'89','z':'90',
  53.             //normal-characters, numpad
  54.             'num0':'96','num1':'97','num2':'98','num3':'99','num4':'100','num5':'101','num6':'102','num7':'103','num8':'104','num9':'105',
  55.             '*':'106','+':'107','-':'109','.':'110',
  56.             //normal-characters, others
  57.             '/':'111',
  58.             ';':'186',
  59.             '=':'187',
  60.             ',':'188',
  61.             '-':'189',
  62.             '.':'190',
  63.             '/':'191',
  64.             '`':'192',
  65.             '[':'219',
  66.             '\\':'220',
  67.             ']':'221',
  68.             "'":'222',
  69.            
  70.             //ignore these, you shouldn't use them
  71.             'left window key':'91','right window key':'92','select key':'93',
  72.            
  73.            
  74.             'f1':'112','f2':'113','f3':'114','f4':'115','f5':'116','f6':'117',
  75.             'f7':'118','f8':'119','f9':'120','f10':'121','f11':'122','f12':'123'
  76.       });
  77.      
  78.       /**
  79.        * @parent specialevents
  80.        * @plugin jquery/event/key
  81.        *
  82.        * Returns a string representation of the key pressed.  The following
  83.        * listens to and prevents backspaces being pressed in inputs:
  84.        *
  85.        *     $("input").keypress(function(ev){
  86.        *       if(ev.keyName() == '\b') {
  87.        *        ev.preventDefault();
  88.        *       }
  89.        *     });
  90.        *
  91.        * ## Keys
  92.        *
  93.        * The following describes the key values returned by [jQuery.Event.prototype.key].
  94.        *
  95.        *  - \b - backspace
  96.        *  - \t - tab
  97.        *  - \r - enter key
  98.        *  - shift, ctrl, alt
  99.        *  - pause-break, caps, escape, num-lock, scroll-loc, print
  100.        *  - page-up, page-down, end, home, left, up, right, down, insert, delete
  101.        *  - ' ' - space
  102.        *  - 0-9 - number key pressed
  103.        *  - a-z - alpha key pressed
  104.        *  - num0-9 - number pad key pressed
  105.        *  - / ; : = , - . / ` [ \\ ] ' "
  106.        *  - f1-12 - function keys pressed
  107.        *  
  108.        * ## Alternate keys
  109.        *
  110.        * Use [jQuery.event.key] to set alternate key mappings for other locales.
  111.        *  
  112.        * @return {String} The string representation of of the key pressed.
  113.        */
  114.       jQuery.Event.prototype.keyName  = function(){
  115.             var event = this,
  116.                   keycode,
  117.                   test = /\w/;
  118.      
  119.             var key_Key =   reverseKeyMap[(event.keyCode || event.which)+""],
  120.                   char_Key =  String.fromCharCode(event.keyCode || event.which),
  121.                   key_Char =  event.charCode && reverseKeyMap[event.charCode+""],
  122.                   char_Char = event.charCode && String.fromCharCode(event.charCode);
  123.            
  124.             if( char_Char && test.test(char_Char) ) {
  125.                   return char_Char.toLowerCase()
  126.             }
  127.             if( key_Char && test.test(key_Char) ) {
  128.                   return char_Char.toLowerCase()
  129.             }
  130.             if( char_Key && test.test(char_Key) ) {
  131.                   return char_Key.toLowerCase()
  132.             }
  133.             if( key_Key && test.test(key_Key) ) {
  134.                   return key_Key.toLowerCase()
  135.             }
  136.  
  137.             //if IE
  138.             //if ($.browser.msie){
  139.                   if (event.type == 'keypress'){
  140.                         return event.keyCode ? String.fromCharCode(event.keyCode) : String.fromCharCode(event.which)
  141.                   } /*else if (event.type == 'keydown') {
  142.                         // IE only recognizes the backspace and delete keys in the keydown event, not keypress
  143.                         keycode = reverseKeyMap[event.keyCode];
  144.                        
  145.                         if (keycode === '\b' || keycode === 'delete'){
  146.                               return keycode;
  147.                         }
  148.                   } */
  149.             //}
  150.            
  151.            
  152.             if (!event.keyCode && event.which) {
  153.                   return String.fromCharCode(event.which)
  154.             }
  155.  
  156.             return reverseKeyMap[event.keyCode+""]
  157.       }
  158.      
  159.      
  160. })

Raw Paste


Login or Register to edit or fork this paste. It's free.