#自定义事件
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
注意:document.createEvent()
已经过时。
##模拟DOM事件
//模拟click事件
//获取btn
var btn = document.querySelector("#btn");
//创建event
var event = document.createEvent("MouseEvents");
//初始化event
event.initMouseEvent("click",true,true,document.defaultView,0,0,0,0,0,false,false,false,false,0,null);
//click事件绑定事件处理程序
btn.onclick = function () {
console.log("hello");
}
//触发事件
btn.dispatchEvent(event); //hello
//取消引用
btn.onclick = null;
##jQuery自定义事件
// Equivalent to subscribe(topicName, callback)
$( document ).on( "topicName" , function () {
//..perform some behaviour
});
// Equivalent to publish(topicName)
$( document ).trigger( "topicName" );
// Equivalent to unsubscribe(topicName)
$( document ).off( "topicName" );
#nodejs中的自定义事件
node中的自定义事件很简单就是继承events.EvenEmitter
方法
const events=require('events');
class Person extend events.EvenEmitter{
constructor(name) {
this.name = name;
}
}
const li=new Person('li');
li.on('eat',(e)=>{
console.log(e);
})
li.emit('eat','土');