Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用不带jquery的事件侦听器触发按键事件_Javascript_Dom Events_Keypress - Fatal编程技术网

Javascript 使用不带jquery的事件侦听器触发按键事件

Javascript 使用不带jquery的事件侦听器触发按键事件,javascript,dom-events,keypress,Javascript,Dom Events,Keypress,我想在不使用jQuery的情况下触发一个按键事件作为对事件侦听器的反应 let arrow=document.querySelector(“箭头”); //当你点击箭头时 arrow.addEventListener('click',函数(e){ //它触发按键(向下) $(文档)。触发器(按键); });您可以使用dispatchEvent触发事件。 示例:使用键x document.dispatchEvent(新键盘事件('keypress',{'key':'x'})); 这对我触发

我想在不使用jQuery的情况下触发一个按键事件作为对事件侦听器的反应

let arrow=document.querySelector(“箭头”);
//当你点击箭头时
arrow.addEventListener('click',函数(e){
//它触发按键(向下)
$(文档)。触发器(按键);

});您可以使用
dispatchEvent
触发事件。
示例:使用键
x

document.dispatchEvent(新键盘事件('keypress',{'key':'x'}));


这对我触发按键关闭事件起到了作用:

// Create listener 
document.addEventListener('keydown', () => { console.log('test')})

// Create event
const keyboardEvent = document.createEvent('KeyboardEvent');
const initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? 'initKeyboardEvent' : 'initKeyEvent';

keyboardEvent[initMethod](
  'keydown', // event type: keydown, keyup, keypress
  true,      // bubbles
  true,      // cancelable
  window,    // view: should be window
  false,     // ctrlKey
  false,     // altKey
  false,     // shiftKey
  false,     // metaKey
  40,        // keyCode: unsigned long - the virtual key code, else 0
  0          // charCode: unsigned long - the Unicode character associated with the depressed key, else 0
);

// Fire event
document.dispatchEvent(keyboardEvent);

使用什么是您的
#箭头
元素?输入?button?它是一个包装3个跨行的div容器。addEventListener('click',函数(e){console.log('Simulation the keypress of down arrow')文档。dispatchEvent(new KeyboardEvent('keypress',{'keyCode':'40');}); 为了按下向下箭头键?它没有触发模拟按键按下OK Norbert它就像一个符咒。然而,我很失望,因为当你点击一个按钮时,我基本上想向下滚动(和向下箭头键一样)。现在它显示了console中的test,因此可以确保keyboardevent被触发,但console.log中不会发生任何事情