jquery.hotkeys.js 1.8 KB

123456789101112
  1. /*
  2. * jQuery Hotkeys Plugin
  3. * Copyright 2010, John Resig
  4. * Dual licensed under the MIT or GPL Version 2 licenses.
  5. *
  6. * Based upon the plugin by Tzury Bar Yochay:
  7. * http://github.com/tzuryby/hotkeys
  8. *
  9. * Original idea by:
  10. * Binny V A, http://www.openjs.com/scripts/events/keyboard_shortcuts/
  11. */
  12. (function(b){b.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function a(d){if(typeof d.data!=="string"){return;}var c=d.handler,e=d.data.toLowerCase().split(" ");d.handler=function(n){if(this!==n.target&&(/textarea|select/i.test(n.target.nodeName)||n.target.type==="text")){return;}var h=n.type!=="keypress"&&b.hotkeys.specialKeys[n.which],o=String.fromCharCode(n.which).toLowerCase(),k,m="",g={};if(n.altKey&&h!=="alt"){m+="alt+";}if(n.ctrlKey&&h!=="ctrl"){m+="ctrl+";}if(n.metaKey&&!n.ctrlKey&&h!=="meta"){m+="meta+";}if(n.shiftKey&&h!=="shift"){m+="shift+";}if(h){g[m+h]=true;}else{g[m+o]=true;g[m+b.hotkeys.shiftNums[o]]=true;if(m==="shift+"){g[b.hotkeys.shiftNums[o]]=true;}}for(var j=0,f=e.length;j<f;j++){if(g[e[j]]){return c.apply(this,arguments);}}};}b.each(["keydown","keyup","keypress"],function(){b.event.special[this]={add:a};});})(jQuery);