自定义事件,其实就是给这个dom注册一个事件,然后派发出一个对应的事件出去
指定了事件类型,还有事件的参数。
语法 : event = new Event(typeArg, eventInit)
typeArg是一个表示事件类型的字符串。
eventInit是事件的配置项:
"bubbles",可选,Boolean类型,默认值为 false,表示该事件是否冒泡。
"cancelable",可选,Boolean类型,默认值为 false, 表示该事件能否被取消。
"composed",可选,Boolean类型,默认值为 false,指示事件是否会在阴影根之外
CustomEven
和Event()方法类似,不过在创建的时候,CustomEventInit中多了一个detail字段,可以用来传递额外的对象,而且少了composed字段。
document.createEvent()
这种方式已经被官方声明不推荐使用了。但是浏览器都是支持的,IE也都支持
document.createEvent('Event') 创建一个自定义事件之后,在触发事件之前一定需要进行初始化。而且要注意只能是document创建,不过使用的时候,所有元素都可以,和之前两种方式一样。
初始化事件的时候指定事件名及能否冒泡,能否被阻止等。
总结:
自定义事件其实套路都一样:
1.添加事件监听(指名要监听的事件名是什么)
2.触发事件,听过基础事件来触发(比如click,keyword等),里面再包一层,去触发自定义的事件。只要传入new出来的Even对象,那么浏览器会根据Event对象里面的事件名,来触发对应的事件。(如果有监听的话)
带参数的自定义事件
不带参数的自定义事件
兼容性好的自定义事件