Skip to content

Latest commit

 

History

History
65 lines (60 loc) · 1.52 KB

README.md

File metadata and controls

65 lines (60 loc) · 1.52 KB

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