# 1.原生事件和移动端事件的一些区别
# 2.js 触发 DOM 元素上的事件
场景:我们平常都是操作鼠标、键盘来触发绑定在 DOM 元素上的事件,在某些特殊情况,我们可能需要用 JS 去触发。(例如触发一个隐藏的 input 标签)
老办法:
- 使用 document.createEvent 创建事件
- 使用 event.initEvent 初始化事件
- 触发事件 domEl.dispatch(event);
例如:
var fileInput = document.getElementById("fileInput");
var clickEvent = document.createEvent("MouseEvents");
clickEvent.initEvent("click", true, true);
clickEvent.stopPropagation();
fileInput.dispatchEvent(clickEvent);
新办法:
- 使用基于 Event 的接口 (opens new window)的构造函数创建事件,无需初始化,直接可用于触发。
- 常用的事件接口有 MouseEvent、TouchEvent、KeyboardEvent、InputEvent
var clickEvent = new MouseEvent("click", {
bubbles: false,
cancelable: false,
composed: false,
});