自定义事件,其实就是给这个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对象里面的事件名,来触发对应的事件。(如果有监听的话)

带参数的自定义事件

不带参数的自定义事件

兼容性好的自定义事件

 

 

 

相关文章: