事件自动触发
在JQ里有一个trigger()方法可以使事件自动触发
原生怎么搞?
1. element.dispatchEvent()
对于标准浏览器,其提供了可供元素触发自定义事件的方法:element.dispatchEvent()
.。
在IE6/7/8则使用 fireEvent()方法
在使用dispatchEvent前需要先创建和初始化
2. createEvent()
createEvent()
方法返回新创建的Event对象
参数 | 事件接口 | 初始化方法 |
---|---|---|
HTMLEvent事件 | HTMLEvent | initEvent() |
MouseEvents事件 | MouseEvent | initMouseEvent() |
UIEvents事件 | UIEvent | initUIEvent() |
HTMLEvent包括:abort,blur,change,error,focus,reset,resize,scroll,select,submit,unload等事件
MouseEvent包括:click,mousedown,mouseover,mouseout,mouseup.mouseleave
UIEvent包括:keydowm,keypress,keyup…
3. initEvent(eventType,canBubble,cancelable)
参数 | 描述 |
---|---|
eventType | 字符串值。事件的类型。 |
canBubble | 事件是否起泡。 |
cancelable | 是否可以用 preventDefault() 方法取消事件。 |
4. dispatchEvent()
dispatchEvent()
就是触发执行了,dom.dispatchEvent(eventObject)
参数eventObject
表示事件对象,是createEvent()
方法返回的创建的Event
对象。
examaple:
// 创建事件
var click = document.createEvent("clikc")
// 初始化事件
click.initEvent("MouseEvent",true,true)
// 触发
element.dispatchEvent(click)