document.createEvent用于创建事件,在DOM Level 2 的事件中就有HTMLEvents,MouseEvents,UIEvents事件类型。DOM Level 3增加很多事件类型,个人觉得其中最有用的是CustomEvent自定义事件。
为DOM元素创建自定义事件的步骤为:
一、创建事件:var ev = document.createEvent('CustomEvent');
二、初始化事件:ev.initCustomEvent('自定义事件名称', false(是否允许冒泡), false(是否允许中断),args)
三、为DOM添加事件监听:element.addEventListener('自定义事件名称',fn,false)
四、分发(触发)自定义事件:element.dispatchEvent(ev)
function seth() {
this.innerHTML = '12344'; //这里的this 指向分发事件的DOM元素
}
var ev = document.createEvent('CustomEvent');
ev.initCustomEvent('myevent', false, false, '');
[].every.call(document.querySelectorAll('div'), function (v, i) {
v.addEventListener('myevent', seth, false);
v.dispatchEvent(ev);
return true;
});