创建自定义事件
为什么要自定义事件,自定义事件要使用在地方?
传统的事件不能满足我们的需求,所以我们需要自定义事件,比如传统的事件有单击,双击,但是突然某一天我想要三击 那就要用到自定义事件了,自定义事件一般使用在观察者模式上,比如主体需要发布各种消息通过创建各种自定义事件来实现,对于消息的订阅则通过注册监听器来实现。
var test = document.getElementById("longen"); // 创建事件 var evt = document.createEvent('Event'); // 定义事件类型 evt.initEvent('customEvent',true,true); // 监听事件 test.addEventListener('customEvent',function(){ console.log("111"); },false); // 触发事件 test.dispatchEvent(evt);
在这个过程中,createEvent方法创建了一个空事件evt,然后使用initEvent方法定义事件的类型为约定好的自定义事件,再对元素进行监听,最后使用dispatchEvent来触发事件了。自定义事件无非就是监听事件,然后自己运行回调函数,上面的initEvent的第二个参数的意思是:是否冒泡,第三个参数的意思是:是否可以使用preventDefault()来阻止默认行为。