CustomEvent()
The CustomEvent()
constructor creates a new CustomEvent
.
构造方法 CustomerEvent() 创建一个新的 CustomEvent
对象。
Syntax 语法
event = new CustomEvent(typeArg, customEventInit);
Values 参数
- typeArg
-
一个表示 event 名字的字符串
- customEventInit
-
Is a
CustomEventInit
dictionary, having the following fields: 一个字典类型参数,有如下字段"detail"
, optional and defaulting tonull
, of type any, that is a event-dependant value associated with the event. 可选的默认值是 null 的任意类型数据,是一个与 event 相关的值- bubbles 一个布尔值,表示该事件能否冒泡。来自
EventInit
。注意:测试 chrome 默认为不冒泡。 - cancelable 一个布尔值,表示该事件是否可以取消。来自
EventInit
The
CustomEventInit
dictionary also accepts fields from theEventInit
dictionary.CustomerEventInit 字典参数同样接受来自于 Event 类构造函数的 eventInit 字典参数,如下
bubbles 一个布尔值,表示该事件能否冒泡
cancelable 一个布尔值,表示该事件是否可以取消
Example
// add an appropriate event listener
obj.addEventListener("cat", function(e) { process(e.detail) });
// create and dispatch the event
var event = new CustomEvent("cat", {
detail: {
hazcheeseburger: true
}
});
obj.dispatchEvent(event);
Specifications
Specification |
---|
DOM Standard # ref-for-dom-customevent-customevent |
Browser compatibility
BCD tables only load in the browser
Polyfill
You can polyfill the CustomEvent()
constructor functionality in Internet Explorer 9 and higher with the following code:
(function(){
try{
// a : While a window.CustomEvent object exists, it cannot be called as a constructor.
// b : There is no window.CustomEvent object
new window.CustomEvent('T');
}catch(e){
var CustomEvent = function(event, params){
params = params || { bubbles: false, cancelable: false, detail: undefined };
var evt = document.createEvent('CustomEvent');
evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
return evt;
};
CustomEvent.prototype = window.Event.prototype;
window.CustomEvent = CustomEvent;
}
})();