繁体   English   中英

如何组合/一起使用鼠标单击和键盘键来执行或调用 JAVASCRIPT 中的任何 function?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM