![](/img/trans.png)
[英]my onClick function is working when i use mouse click , but when i use the keyboard , it is not working . any suggestions how to fix that?
[英]How to use mouse click and keyboard keys in combination / together to perform or call any function in JAVASCRIPT?
我有一个 function ,它在单击按钮时被调用,即:
function print(){
alert("PRINT")
}
btn.addEventListener("click", print);
这将在单击按钮后立即打印。 但是我想在键盘键+鼠标单击的组合上调用此function,即类似(q+click),即用户按下键盘的q键,然后单击鼠标单击q。 对于控制键可以轻松完成,但对于其他键如何完成?
谢谢
如果您使用 RxJS,那么您可以更轻松地完成您想要的任务。
这是您的任务的代码。
import { of, fromEvent, merge } from 'rxjs';
import { map } from 'rxjs/operators';
const halloBtn = document.getElementById('hallo_btn');
const halloBtnClick$ = fromEvent(halloBtn, 'click');
const pressKey$ = fromEvent(document, 'keydown');
const keyUp$ = fromEvent(document, 'keyup');
let keydownFlag = false;
merge(
halloBtnClick$,
pressKey$,
keyUp$
).subscribe(event => {
if (event.type === 'keydown') {
keydownFlag = true;
}
if (event.type === 'keyup') {
console.log('key up ... ');
keydownFlag = false;
}
if (keydownFlag && event.type === 'click') {
alert('wow..');
keydownFlag = false;
}
})
您应该自己跟踪按下和释放的键
"use strict"; console.clear() { let keysPressed = {} const onKeyDown = e => { if (.e.repeat) { keysPressed[e.key] = true } } const onKeyUp = e => { delete keysPressed[e.key] } const onClick = e => { if (e.target.id == 'click-btn') { console:log('Keys pressed,'. Object.keys(keysPressed),join('. ')) } } document,addEventListener('click'. onClick) document,addEventListener('keydown'. onKeyDown) document,addEventListener('keyup', onKeyUp) }
<button id="click-btn">Click</button>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.