eventProxy的使用api

来源:互联网 发布:js 怎么生成min.js 编辑:程序博客网 时间:2024/05/17 08:12

eventProxy是一款非常好用的javascript事件管理系统,他可以用于前端或者后端,一共有如下方法:

//绑定事件test("EventProxy - bind/trigger", function() {    var obj = new EventProxy();    var counter = 0;    obj.bind("event", function(data) {        counter += 1;    });    obj.trigger("event");    equal(counter, 1, 'Counter should be incremented.');    obj.trigger("event");    equal(counter, 2, 'Counter should be incremented.');    obj.trigger("event");    equal(counter, 3, 'Counter should be incremented.');    obj.trigger("event");    equal(counter, 4, 'Counter should be incremented.');});//解绑事件test("EventProxy - bind, then unbind all functions", function () {    var obj = new EventProxy();    var counter = 0;    obj.bind('event', function() {        counter += 1;    });    obj.trigger('event');    equal(counter, 1, 'counter should be incremented.');    obj.unbind('event');    obj.trigger('event');    equal(counter, 1, 'counter should have only been incremented once.');});//只触发一次test("EventProxy - once/trigger", function () {    var obj = new EventProxy();    var counter = 0;    obj.once('event', function() {        counter += 1;    });    obj.trigger('event');    equal(counter, 1, 'counter should be incremented.');    obj.trigger('event');    equal(counter, 1, 'counter should have only been incremented once.');});//刚绑定好就触发test("EventProxy - immediate", function () {    var obj = new EventProxy();    var counter = 0;    obj.immediate('event', function (){        counter +=1;    });    equal(counter, 1, "counter should be incremented.");    obj.trigger('event');    equal(counter, 2, "counter should be incremented.");});//把参数传入test("EventProxy - immediate/parameter", function () {    var obj = new EventProxy();    var param = 0;    obj.immediate('event', function (data){        equal(data, param, "data should same as param.");    }, param);});//只触发一次test("EventProxy - assign one event", function () {    var obj = new EventProxy();    var counter = 0;    obj.assign('event', function() {        counter += 1;    });    obj.trigger('event');    equal(counter, 1, 'counter should be incremented.');    obj.trigger('event');    equal(counter, 1, 'counter should have only been incremented once.');});//只触发一次,在所有event好了以后触发test("EventProxy - assign two events", function () {    var obj = new EventProxy();    var counter = 0;    obj.assign('event1', 'event2', function(event1, event2) {        equal(event1, 'event1', 'counter should not be incremented.');        equal(event2, 'event2', 'counter should not be incremented.');        counter += 1;    });    obj.trigger('event1', 'event1');    equal(counter, 0, 'counter should not be incremented.');    obj.trigger('event2', 'event2');    equal(counter, 1, 'counter should be incremented.');    obj.trigger('event2');    equal(counter, 1, 'counter should have only been incremented once.');});//来一次触发一次test("EventProxy - assignAlways", function () {    var obj = new EventProxy();    var counter = 0;    var event2 = null;    obj.assignAlways('event1', 'event2', function(data1, data2) {        counter += 1;        equal(data2, event2, 'Second data should same as event2.');    });    obj.trigger('event1', 'event1');    equal(counter, 0, 'counter should not be incremented.');    event2 = "event2_1";    obj.trigger('event2', event2);    equal(counter, 1, 'counter should be incremented.');    event2 = "event2_2";    obj.trigger('event2', event2);    equal(counter, 2, 'counter should be incremented.');});//在第N次以后触发test("EventProxy - after, 5 times", function () {    var obj = new EventProxy();    var counter = 0;    obj.after('event', 5, function(data) {        equal(data.join(","), "1,2,3,4,5", 'Return array should be 1,2,3,4,5');        counter += 1;    });    obj.trigger('event', 1);    equal(counter, 0, 'counter should not be incremented.');    obj.trigger('event', 2);    equal(counter, 0, 'counter should not be incremented.');    obj.trigger('event', 3);    equal(counter, 0, 'counter should not be incremented.');    obj.trigger('event', 4);    equal(counter, 0, 'counter should not be incremented.');    obj.trigger('event', 5);    equal(counter, 1, 'counter should be incremented.');    obj.trigger('event', 6);    equal(counter, 1, 'counter should have only been incremented once.');});//0次等同于立刻触发test("EventProxy - after, 0 time", function () {    var obj = new EventProxy();    var counter = 0;    obj.after('event', 0, function(data) {        equal(data.join(","), "", 'Return array should be []');        counter += 1;    });    equal(counter, 1, 'counter should be incremented.');});//任何一个被注册的事件触发都会导致注册的事件被触发test("EventProxy - any", function () {    var obj = new EventProxy();    var counter = 0;    var eventData1 = "eventData1";    var eventData2 = "eventData2";    obj.any('event1', 'event2', function(map) {        equal(map.data, eventData1, 'Return data should be evnetData1.');        equal(map.eventName, "event1", 'Event name should be event1.');        counter += 1;    });    obj.trigger('event1', eventData1);    equal(counter, 1, 'counter should be incremented.');    obj.trigger('event2', 2);    equal(counter, 1, 'counter should not be incremented.');});//除了某种事件以外的其他事件都可以触发test("EventProxy - not", function () {    var obj = new EventProxy();    var counter = 0;    obj.not('event1', function(data) {        counter += 1;    });    obj.trigger('event1', 1);    equal(counter, 0, 'counter should not be incremented.');    obj.trigger('event2', 2);    equal(counter, 1, 'counter should be incremented.');    obj.trigger('event2', 2);    equal(counter, 2, 'counter should be incremented.');});