Eventer.js - 一个微型事件发布/订阅模块

jopen 8年前

Eventer.js

自用的一个微型事件发布/订阅模块

特性

  • 支持链式操作
  • 支持批量订阅事件
  • 啦啦啦,卖个萌

开始使用

首先引入本模块:

<script src="//path/to/eventer.js"></script>

我们给现有对象obj_margox绑定本模块:

var obj_margox = {      'name' : 'Margox',      'age'  : 26,      'sex'  : 'male',      'isSingle'   : true,      'girlFriend' : null  }    Eventer(obj_margox);

现在obj_margox这个对象已经具有了事件发布/订阅的功能

订阅事件

通过on方法可以订阅单个或者多个事件

// 订阅单个事件  obj_margox.on('grow', function() {      this.age = this.age + 1;      console.log(this.name + ' is ' + this.age + 'years old.');  });    // 订阅多个事件  obj_margox.on({      'hungry' : function() {          console.log(this.name + ' is hungry!');      },      'tired' : function() {          console.log(this.name + ' need a rest!');      },      'eat' : function(food) {          console.log(this.name + ' just ate some ' + food);      }  });

发布事件

通过trigger方法来发布(触发)一个事件

obj_margox.trigger('grow'); // Margox is 27 years old.    obj_margox      .trigger('hungry') // Margox is hungry!      .trigger('tired') // Margox need a rest!      .trigger('eat', 'breads'); // Margox just ate some breads

取消事件订阅

通过off方法来取消订阅指定的事件

obj_margox      .off('hungry') // 取消订阅hungry事件      .trigger('hungry'); // nothing

项目地址: https://github.com/margox/Eventer.js