DOM3中的自定义事件

Posted baimeishaoxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DOM3中的自定义事件相关的知识,希望对你有一定的参考价值。

DOM3级还定义了自定义事件,自定义事件不是由DOM原生触发的,它的目的是让开发人员创建自己的事件。要创建的自定义事件可以由createEvent("CustomEvent"); 返回的对象有一个initCustomEvent()方法接收如下四个参数。

  1. type:字符串,触发的事件类型,自定义。例如 “keyDown”,“selectedChange”;
  2. bubble(布尔值):标示事件是否应该冒泡;
  3. cancelable(布尔值):标示事件是否可以取消;
  4. detail(对象):任意值,保存在event对象的detail属性中;

下面举例: 当点击按钮的时候,一秒钟之后会触发一个id为target的元素的自定义事件myEvent,此自定义事件发生冒泡,依次经过target,wrap和document。
实际例子在这里:https://codepen.io/zhaojianxi...

<div id= wrap>
  <div>
    <div id="target"></div>
  </div>
  <button id=‘btn‘>点击</button>
</div>

  var e = document.createEvent("CustomEvent");
  e.initCustomEvent("myEvent",true,false,"hello world!");

       var btn = document.getElementById(‘btn‘);

       btn.addEventListener(‘click‘,function(){
         setTimeout(function(){
           target.dispatchEvent(e)
         },1000)
       })

       var wrap = document.getElementById(‘wrap‘);
       var target = document.getElementById(‘target‘);
       target.addEventListener(‘myEvent‘,function(e){
         console.log(‘target‘,e)
       })
       wrap.addEventListener(‘myEvent‘,function(e){
         console.log(‘wrap‘,e)
       })
       window.addEventListener(‘myEvent‘,function(e){
         console.log(‘window‘,e)
       })

以上是关于DOM3中的自定义事件的主要内容,如果未能解决你的问题,请参考以下文章

片段中的自定义列表适配器

片段中的自定义列表视图。未找到布局

JavaScript"模拟事件"的注意要点

Three.js 中的自定义纹理着色器

解析JavaScript"模拟事件"的注意要点

找到我的自定义代码片段 Xcode 6?