标签:
没错,自定义事件的机制如普通事件一样——监听事件,写回调操作,触发事件后执行回调。但不同的是,自定义事件完全由我们控制触发时机,这就意味着实现了一种 JavaScript 的解耦。我们可以把多个关联但逻辑复杂的操作利用自定义事件的机制灵活地控制好。
代码演示如下:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 </head> 5 <body> 6 7 <div id="div2">你好。这是一个 div 元素。</div> 8 9 <script> 10 var event = document.createEvent("Event"); //创建事件 11 event.initEvent("my",true,true); //初始化事件 12 var dom = document.getElementById("div2"); 13 dom.addEventListener("my",function(){alert("ok")},false); //监听事件 14 dom.dispatchEvent(event); //触发事件 15 </script> 16 </body> 17 </html>
相关函数注释:
1.创建事件 document.createEvent(type);
type is a string that represents the type of event to be created. Possible event types include “UIEvents”, “MouseEvents”, “MutationEvents”, and “HTMLEvents”. See Notes section for details.
2. 初始化事件
event.initEvent(eventType,canBubble,cancelable)
参数介绍:
eventType 字符串值。事件的类型。也就是新事件的名字
canBubble 事件是否起泡。
cancelable 是否可以用 preventDefault() 方法取消事件。
3.监听事件事件
target.addEventListener(‘dataavailable‘, handler, false);
参数介绍:
dataavailable 新事件名
handler 触发的函数
false 是否是扑获事件模型
4.触发事件
target.dispatchEvent(e);
e 是已经申明的事件对象
标签:
原文地址:http://www.cnblogs.com/smart-tian/p/4624084.html