Skript, um eine Taste beim gedrückt halten mehrfach zu drücken?
Guten Tag,
das hier ist ein JavaScript, welches dafür sorgt, dass ich, wenn ich eine Taste gedrückt halte, die Funktion mehrfach ausgeführt wird.
$(function () {
const holdDelay = 82, // ms delay to start dropping after pressing
dropDelay = 32 // ms delay between drops
let keys = {};
$(document).on("keydown", (e) => {
// if (e.keyCode != $('#pellet').text().charCodeAt(0)) return;
if (e.keyCode in keys) return;
keys[e.keyCode] = setTimeout(() => {
drop(e.keyCode);
}, holdDelay);
}).on("keyup", (e) => {
clearTimeout(keys[e.keyCode]);
delete keys[e.keyCode];
});
const drop = key => {
if (keys[key] == null) return;
window.onkeydown({ keyCode: key });
window.onkeyup({ keyCode: key });
setTimeout(drop, dropDelay, key);
}
});
Weiß jemand, wie ich machen kann, dass das nur für eine Taste gilt?
1 Antwort
Ich bin mir nicht sicher, weshalb Du Dich für diese komplizierte Vorgehensweise entschieden hast.
Folgender Code reicht vollkommen aus, um eine Funktion bei gedrückter Taste mehrmals ausführen zu lassen:
document.addEventListener("keydown", function(event) {
// e.keyCode ist mittlerweise veraltet, deshalb event.key
if(event.key === "Enter") {
// …
}
});
Ich kenne mich mit dem Programmieren nicht aus, dass hier war ein Code welchen ich auch dem Internet gefunden habe.
Aber da ich den Code brauche, nur eben ein bisschen abgewandelt für eine Taste hab ich ihn hier reingestellt.
Danke für die Antwort und den Code!