#javascript
#javascript
Вопрос:
Есть ли какой-либо способ запустить функцию (или строку javascript) нажатием одной клавиши? Например, нажатие клавиши X
запускает функцию example();
Мой код ( X
выполняется нажатие клавиши $("body").trigger($.Event("keydown", { keyCode: 32}));
)
window.addEventListener('keydown', keydown);
window.addEventListener('keyup', keyup);
var speed = 25;
function example(){
$("body").trigger($.Event("keydown", { keyCode: 32}));
}
var addEvent = document.addEventListener ? function(target,type,action){
if(target){
target.addEventListener(type,action,false);
}
} : function(target,type,action){
if(target){
target.attachEvent('on' type,action,false);
}
}
addEvent(document,'keydown',function(e){
e = e || window.event;
var key = e.which || e.keyCode;
if(key===88){
example();
}
});
function keydown(event) {
if (event.keyCode == 68) { //key D
split();
setTimeout(split, speed);
}
if (event.keyCode == 90) { //key Z
split();
setTimeout(split, speed);
setTimeout(split, speed*2);
}
if (event.keyCode == 69) { //key E
split();
setTimeout(split, speed);
setTimeout(split, speed*2);
setTimeout(split, speed*3);
}
}
function split() {
$("body").trigger($.Event("keydown", { keyCode: 32})); //key space
$("body").trigger($.Event("keyup", { keyCode: 32})); //jquery is required for split to work
}
Комментарии:
1. Я забыл удалить ненужные коды, которые не имеют никакого отношения к вопросу, извините за это.
Ответ №1:
Вы можете сделать что-то вроде этого.
document.addEventListener("keydown",(e)=>{
if(e.key=="x"){
console.log("You have pressed X")
//Here you can call some function you need
function();
}
});
Здесь я использую выражение lamda.Вы можете поместить любую функцию, которая вам нужна, внутри этого выражения.