From bc991ca79813b8dd5ea9ac92d58a780f49b44052 Mon Sep 17 00:00:00 2001 From: jkhsjdhjs Date: Sat, 2 Dec 2017 21:21:46 +0100 Subject: [PATCH] rewrite keybindings --- s/shit.js | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/s/shit.js b/s/shit.js index 470026a..1265ce1 100644 --- a/s/shit.js +++ b/s/shit.js @@ -1,27 +1,22 @@ -function arrowKeys(e) { - switch(e.keyCode) { - case 39: - var prev = document.getElementById('prev'); - if(prev) prev.click(); - break; - case 37: - var next = document.getElementById('next'); - if(next) next.click(); - break; - case 82: - var random = document.getElementById('random'); - if(random) random.click(); - } -} -if(document.readyState == 'complete' || document.readyState == 'loaded') - document.addEventListener('keydown', arrowKeys); -else { - if(/Chrome/i.test(navigator.userAgent)) - window.addEventListener('load', function () { - document.addEventListener('keydown', arrowKeys); - }); - else - document.addEventListener('DOMContentLoaded', function () { - document.addEventListener('keydown', arrowKeys); - }); +const keybindings = { + 'ArrowLeft': clickOnElementBinding('#next'), + 'ArrowRight': clickOnElementBinding('#prev'), + 'r': clickOnElementBinding('#random') +}; + +function clickOnElementBinding(selector) { + return () => { + let elem = document.querySelector(selector); + if(elem) + elem.click(); + }; } + +(function() { + document.addEventListener('keydown', e => { + if(e.key in keybindings) { + e.preventDefault(); + keybindings[e.key](); + } + }); +})();