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 = '';