在nodeJS中有一个事件模块,可以在服务端创建自定义的事件,触发事件。在前端,js也提供了自定义事件功能,只是我们用的很少。
- 首先创建一个自定义事件
var myEvent=new CustomEvent('hehe',{
detail:{
name:'long'
},
bubbles:true,
cancelable:true,
})
new 一个CustomEvent对象,它接收两个参数,第一个是事件的名字,第二个是一个对象,将成为事件对象,
- detail放一些要传递的参数,在触发时在事件对象的detail中获取,
- bubble为布尔值,表示该事件是否冒泡。
- cancelable为布尔值,表示该事件是否可以取消
还有一些其它的属性
- 监听事件
可以将事件绑定到dom元素上,但好像没什么意义,感觉绑定到window上更好一点。
window.addEventListener('hehe',function(e){
console.log('触发了自定义函数',e)
})
- 事件的触发
不像click这些内置的事件,通过一些动作可以触发,自定义事件没有任何动作能触发它,只能显示地调用dispatchEvent方法去触发它。
a.onclick=function(){
window.dispatchEvent(myEvent)
}
例如在点击a元素的时候,在点击事件地回调里去触发它。
自定义事件有什么用,暂时还没用过,等用到时再回来补充,先记录一下有这个东西。