【问题标题】:Triggering Keyboard events with data using JavaScript使用 JavaScript 用数据触发键盘事件
【发布时间】:2014-06-13 10:51:40
【问题描述】:
【问题讨论】:
标签:
javascript
mouseevent
keyboard-events
custom-events
【解决方案1】:
借助来自Dr. Axel Rauschmayer 的精彩帖子http://www.2ality.com/2013/06/triggering-events.html
您可以使用以下 3 个构造函数来触发,
// use any one of these constructor as per your usecase
var e = new Event("keydown"); //without any data
var e = new CustomEvent("keydown", {detail: {prop1: "value"}}); //if any data required use detail: only detail/bubbles/cancelable properties can be passed here
var e = new KeyboardEvent("keydown");
// add properties
e.keyCode = 50; // works for *Event* and *CustomEvent* constructors
e.key = 50; // in *KeyboardEvent* constructor *keyCode* is **readonly** property so use *key* property. Refer properties detail using https://developer.mozilla.org/en-US/docs/Web/Reference/Events/keydown
e.anyNewProp = "value"; // if any new prop is required
// finally dispatchEvent using dispatchEvent method of dom element
ele.dispatchEvent(e);
// listening for keypress event,
ele.addEventListener("keydown", function(e){
console.log(e.keyCode); //results 50
console.log(e.key); //results 50
console.log(e.anyNewProp); //results "value"
});