原生js实现自定义事件
2017-07-23 23:19
399 查看
原生js实现自定义事件
用JavaScript的话来说,观察者模式的实质就是你可以对程序中某个对象的状态进行观察,并且在其发生改变时能够得到通知。利用观察者模式可以很容易的实现自定义事件,具体代码如下:
var Event=function() { this.subscibers={};//保存事件的回调函数 }; Event.prototype={ constructor:Event,//保持原型链的完整 on:function(type,callback) { //绑定事件 this.subscibers[type]=[]; this.subscibers[type].push(callback); } else { this.subscibers[type].push(callback); } }, off:function(type) { //移除事件 this.subscibers[type]=[]; }, emit:function(type) { //触发事件 var t=this; if(typeof this.subscibers[type]=='object') { this.subscibers[type].forEach(function(fn,i) { fn.call(t); }); } } }; var s=new Event(); s.title='测试自定义事件'; s.on('change.title',function() { console.log(this.title); }); s.setTitle=function(value) { this.title=value; this.emit('change.title') }; s.setTitle('属性发生了变化');
使用自定义事件,可以很容易实现面向对象的编程方式,并且在对象的状态发生改变时,重新进行模板的渲染。
相关文章推荐
- js屏蔽鼠标右键默认事件以实现自定义菜单
- Android系统下用js自定义gesture事件(仿ios实现移动端事件一致)
- 1.事件委托的原理以及优缺点 2. 手写原生js实现事件代理,并要求兼容浏览器
- JS里关于事件的常被考察的知识点:事件流、事件广播、原生JS实现事件代理
- 初识 js 实现自定义事件
- 原生JS实现AJAX、JSONP及DOM加载完成事件,并提供对应方法
- Vue结合原生js实现自定义组件自动生成
- 原生JS实现跨浏览器的事件处理程序
- js原生事件委托的实现
- 原生js实现自定义alert风格和实现
- 原生JS实现自定义滚动条效果
- js实现屏蔽默认快捷键调用自定义事件示例
- 原生JS实现AJAX、JSONP及DOM加载完成事件
- JS原生实现自定义滚动条
- 原生js实现下拉到底事件(2)-解决为什么ie下的onscroll事件轮滚过快就执行了2次呢?
- js实现自定义事件
- 通过原生JS实现为元素添加事件的方法
- js利用trigger和bind实现自定义事件的定义和触发
- jQueryy原生js实现---hover事件
- 原生js 实现document ready事件,出自犀牛书