创建并触发自定义事件、模拟事件
本文介绍了创建了使用原生JavaScript API创建事件对象并模拟触发事件的方法。
创建自定义事件对象
可以通过Event
构造器来创建一个事件对象:
1 | var event = new Event('build'); |
在IE中,虽然有Event这个构造器,但是直接用new
来构造会抛出异常,可以使用一个更老的方法,调用document.createEvent
来创建一个事件对象并使用e.initEvent
来初始化这个事件对象:
1 | var event = document.createEvent('Event'); |
第二个参数代表bubbles,表示事件是否可冒泡。第三个参数代表cancelable,表示事件是否可被取消(preventDefault)。
触发事件
在事件目标对象(通常是一个HTMLElement)上调用dispatchEvent
来触发某个事件,触发的事件由传递的事件对象决定, 比如触发上面自定义好的build事件:
1 | var event = document.createEvent('Event'); |
也可以通过这个办法来模拟事件的触发,比如模拟mouseenter
事件:
1 | var event = document.createEvent('MouseEvent'); |