From 8bef8dd67ca1666b8240fe997115d8482ecc74e6 Mon Sep 17 00:00:00 2001 From: Jackson Tian Date: Thu, 27 Mar 2014 16:41:42 +0800 Subject: [PATCH] Fix unbind issue, fix #48 --- lib/eventproxy.js | 1 - test/test.js | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/eventproxy.js b/lib/eventproxy.js index 430e223..8106e2d 100755 --- a/lib/eventproxy.js +++ b/lib/eventproxy.js @@ -114,7 +114,6 @@ if (callback === list[i]) { debug('Remove a listener of %s', eventName); list[i] = null; - break; } } } diff --git a/test/test.js b/test/test.js index ecba7a5..b38115f 100755 --- a/test/test.js +++ b/test/test.js @@ -105,6 +105,23 @@ describe("EventProxy", function () { assert.equal(counter, 1, 'counter should have only been incremented once.'); }); + it('bind function muti-times, then remove it', function () { + var ep = EventProxy.create(); + var counter = 0; + var handler = function () { + counter += 1; + }; + ep.bind('event', handler); + ep.trigger('event'); + assert.equal(counter, 1, 'counter should be incremented.'); + ep.bind('event', handler); + ep.trigger('event'); + assert.equal(counter, 3, 'counter should be incremented.'); + ep.unbind('event', handler); + ep.trigger('event'); + assert.equal(counter, 3, 'counter should not incremented again.'); + }); + it('headbind/trigger', function () { var ep = EventProxy.create(); var str = '';