document.createEvent用于创建事件
事件又 HtmlEvents,MouseEvents,UIEvents
参数 | 事件接口 | 初始化方法 |
---|---|---|
HTMLEvents | HTMLEvent | initEvent() |
MouseEvents | MouseEvent | initMouseEvent |
UIEvents | UIEvent | initUIEvent |
步骤:
- 创建事件:var ev = document.createEvent('CustomEvent');
- 初始化事件:ev.initCustomEvent('自定义事件名称', false(是否允许冒泡), false(是否允许中断),args)
- 为DOM添加事件监听:element.addEventListener('自定义事件名称',fn,false)
- 分发(触发)自定义事件:element.dispatchEvent(ev)
-
通过使用
event.isTrusted
判断事件是由代码还是用户触发。
dispatchEvent和addEventListener区别
addEventListener(type,fun,bool)是监听一个事件,当触发事件时,执行函数,那么什么时候触发事件呢,当监听到dispatchEvent(type)时,触发
dispatchEvent是发布事件的意思
例子说明:
var a:Sprite = new Sprite();
a.addEventListener(MyEvent.OPEN_QQ, openqq);
stage.addEventListener(MouseEvent.CLICK, handle); //注册一个鼠标点击舞台的监听器
private function handle(e:MouseEvent): void {
//当鼠标点击舞台时,我们通知a对象发生了打开qq这个事件,a对象会执行openqq函数
a.dispatchEvent( new MyEvent(MyEvent.OPEN_QQ));
}
private function openqq(e:MyEvent): void {
//执行打开qq的代码,此处略...
}
-
$(dom).addEvent("ft", function() { alert("走起"); }); // 创建 var evt = document.createEvent("HTMLEvents"); // 初始化 evt.initEvent("ft", false, false); // 触发, 即弹出文字 dom.dispatchEvent(evt);