2010-12-20 8 views
-1

Wie kann ich jQuery onkeyup verwenden, um diese (Multi-) Tasten in allen neuen Browsern zu verwenden?Die beste Methode, spezielle Tasten wie [STRG] + [UP] mit onkeyup in allen Browsern zu verwenden

  • CTRL +AB
  • CTRL +UP
  • ALT + AB
  • ALT +UP
  • AB
  • UP
+2

Bitte sehen [ "Should Fragen umfassen‚Tags‘im Titel?"] (Http: // Meta. stackexchange.com/questions/19190/should-questions-include-tags-in-the-titles), wo der Konsens "nein, sie sollten nicht!" –

+0

@Andreas sollten sie auch Tippfehler oder fehlende Leerzeichen haben. – TZHX

+1

Sie wissen also, @Peter, bei StackOverflow erwarten wir, dass die Benutzer in allen Fällen Englisch verwenden. Nicht TXTspk. Unvollkommene Grammatik ist in Ordnung, wenn nicht ideal, aber bitte verwenden Sie das korrekteste Englisch, das Sie kennen. –

Antwort

2

Werfen Sie einen Blick auf die Hotkeys plugin for jQuery!

EDIT: Dies ist eine Arbeits Hotkey plugion Version (es ist ziemlich kurz):

(function(jQuery){jQuery.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 keyHandler(handleObj){if(typeof handleObj.data!=="string"){return}var origHandler=handleObj.handler,keys=handleObj.data.toLowerCase().split(" ");handleObj.handler=function(event){if(this!==event.target&&(/textarea|select/i.test(event.target.nodeName)||event.target.type==="text")){return}var special=event.type!=="keypress"&&jQuery.hotkeys.specialKeys[event.which],character=String.fromCharCode(event.which).toLowerCase(),key,modif="",possible={};if(event.altKey&&special!=="alt"){modif+="alt+"}if(event.ctrlKey&&special!=="ctrl"){modif+="ctrl+"}if(event.metaKey&&!event.ctrlKey&&special!=="meta"){modif+="meta+"}if(event.shiftKey&&special!=="shift"){modif+="shift+"}if(special){possible[modif+special]=true}else{possible[modif+character]=true;possible[modif+jQuery.hotkeys.shiftNums[character]]=true;if(modif==="shift+"){possible[jQuery.hotkeys.shiftNums[character]]=true}}for(var i=0,l=keys.length;i<l;i++){if(possible[keys[i]]){return origHandler.apply(this,arguments)}}}}jQuery.each(["keydown","keyup","keypress"],function(){jQuery.event.special[this]={add:keyHandler}})})(jQuery); 
+0

Dieses Plugin ist nicht rly up2date .. richtig? letztes update -> 3. Mai 2009 ... Hat es für jeden neuen Browser funktioniert? – Peter

+0

Soweit ich weiß ja (aber soweit ich mich erinnere mussten wir es patchen) – Thariama