Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.javascript > #38374
| Newsgroups | comp.lang.javascript |
|---|---|
| Subject | Re: Keydriven events howto best encapsulate the keypress code |
| From | "Evertjan." <exxjxw.hannivoort@inter.nl.net> |
| References | <10db4ef8-3260-4a57-90de-37edd7c54b9e@googlegroups.com> |
| Date | 2020-04-21 01:01 +0200 |
| Message-ID | <XnsABA6A745F074eejj99@194.109.6.166> (permalink) |
=?UTF-8?Q?Jonas_Th=C3=B6rnvall?= <jonas.thornvall@gmail.com> wrote on 20
Apr 2020 in comp.lang.javascript:
> Even though i use event listeners here and there i am not really
> familiar with how to encapsulate the keydriven actions, is the way i
> present here how it is usually done? Or should/can one breakout the if
> clauses/selection to put within their own function?
>
> I honestly find it disturbing having the active code together with the
> declaration of the listener? But maybe that is just me finding reading
> javascript syntax confusing? Ideas like function(event) as parameters to
> listeners just feel foreign to me.
>
> document.addEventListener('keydown', function(event) {
> if (event.keyCode == 67) {
> document.getElementById("cnode").checked = true;
> } else if (event.keyCode == 66) {
> document.getElementById("rnode").checked = true;
> } else if (event.keyCode == 69) {
> document.getElementById("rmnode").checked = true;
> removeMarkedNodes();
> } else if (event.keyCode == 74) {
> reset_booleans;
> moveit=true;
> build_canvas();
> document.getElementById("movenode").checked = true;
> } else if (event.keyCode == 71) {
> document.getElementById("mnode").checked = true;
> } else if (event.keyCode == 70) {
> document.getElementById("relnodes").checked = true;
> reset_booleans();
> markarea=true;
> markUnmarkAll();
> build_canvas();
> document.getElementById("movenode").checked = true;
> } else if (event.keyCode == 65) {
> document.getElementById("area").checked = true;
> } else if (event.keyCode == 72) {
> document.getElementById("cmlink").checked = true;
> createMarkedLinks();
> } else if (event.keyCode == 73) {
> document.getElementById("rmlink").checked = true;
> removeMarkedLinks();
> } else if (event.keyCode == 68) {
> document.getElementById("drawtool").checked = true;
> } else if (event.keyCode == 82) {
> document.getElementById("reshape").checked = true;
> } else if (event.keyCode == 17) {
> drawstart = true;
> message2="SET FOCUS"
> } else if (event.keyCode == 16) {
> shiftpress = true;
> } else if (event.keyCode == 84) {
> document.getElementById("beziercurve").checked = true;
> bezier_curve();
> }
> });
>
Try [untested ofcourse]:
const ecArr = '67/66/71/65/68/82/69/74/70/72/73/84'.split('/');
const enArr =
'cnode/rnode/mnode/area/drawtool/reshape/rmnode/movenode/relnodes/cmlink/rml
ink/beziercurve'.split('/');
document.addEventListener('keydown', event => {
let ec = event.keyCode;
let found = ecArr.indexOf(ec);
if (found>-1)
document.getElementById(enArr[found]).checked = true;
if (ec == 69) {
removeMarkedNodes();
} else if (ec == 74) {
reset_booleans;
moveit=true;
build_canvas();
} else if (ec == 70) {
reset_booleans();
markarea=true;
markUnmarkAll();
build_canvas();
document.getElementById('movenode').checked = true;
} else if (ec == 72) {
createMarkedLinks();
} else if (ec == 73) {
removeMarkedLinks();
} else if (ec == 17) {
drawstart = true;
message2="SET FOCUS";
} else if (ec == 16) {
shiftpress = true;
} else if (ec == 84) {
bezier_curve();
};
});
--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Keydriven events howto best encapsulate the keypress code Jonas Thörnvall <jonas.thornvall@gmail.com> - 2020-04-20 13:25 -0700 Re: Keydriven events howto best encapsulate the keypress code "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2020-04-21 01:01 +0200 Re: Keydriven events howto best encapsulate the keypress code JJ <jj4public@vfemail.net> - 2020-04-21 13:37 +0700
csiph-web