Sha256: 1c158cbf1262744076fbb5453ab00e6e5fd897fdfca2846d5a61ffe775c5a5b6
Contents?: true
Size: 1.4 KB
Versions: 5
Compression:
Stored size: 1.4 KB
Contents
/* --- name: Element.Event.Pseudos.Keys description: Adds functionality fire events if certain keycombinations are pressed license: MIT-style license authors: - Arian Stolwijk requires: [Element.Event.Pseudos] provides: [Element.Event.Pseudos.Keys] ... */ (function(){ var keysStoreKey = '$moo:keys-pressed', keysKeyupStoreKey = '$moo:keys-keyup'; Event.definePseudo('keys', function(split, fn, args){ var event = args[0], keys = [], pressed = this.retrieve(keysStoreKey, []); keys.append(split.value.replace('++', function(){ keys.push('+'); // shift++ and shift+++a return ''; }).split('+')); pressed.include(event.key); if (keys.every(function(key){ return pressed.contains(key); })) fn.apply(this, args); this.store(keysStoreKey, pressed); if (!this.retrieve(keysKeyupStoreKey)){ var keyup = function(event){ (function(){ pressed = this.retrieve(keysStoreKey, []).erase(event.key); this.store(keysStoreKey, pressed); }).delay(0, this); // Fix for IE }; this.store(keysKeyupStoreKey, keyup).addEvent('keyup', keyup); } }); Object.append(Event.Keys, { 'shift': 16, 'control': 17, 'alt': 18, 'capslock': 20, 'pageup': 33, 'pagedown': 34, 'end': 35, 'home': 36, 'numlock': 144, 'scrolllock': 145, ';': 186, '=': 187, ',': 188, '-': Browser.firefox ? 109 : 189, '.': 190, '/': 191, '`': 192, '[': 219, '\\': 220, ']': 221, "'": 222, '+': 107 }); })();
Version data entries
5 entries across 5 versions & 1 rubygems