mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-26 13:05:35 +08:00
fix:jqLite: Fix binding to more events separated by space
The var eventHandler was defined outside forEach loop, so registering more
events caused calling listeners registered by the last one.
Regression:
elm.bind('click keyup', callback1);
elm.bind('click', callback2);
elm.bind('keyup', callback3);
Firing click event would have executed callback1, callback3 !
This commit is contained in:
@@ -331,6 +331,23 @@ describe('jqLite', function(){
|
||||
browserTrigger(b, 'click');
|
||||
expect(log).toEqual('click on: A;click on: B;');
|
||||
});
|
||||
|
||||
it('should bind to all events separated by space', function() {
|
||||
var elm = jqLite(a),
|
||||
callback = jasmine.createSpy('callback');
|
||||
|
||||
elm.bind('click keypress', callback);
|
||||
elm.bind('click', callback);
|
||||
|
||||
browserTrigger(a, 'click');
|
||||
expect(callback).toHaveBeenCalled();
|
||||
expect(callback.callCount).toBe(2);
|
||||
|
||||
callback.reset();
|
||||
browserTrigger(a, 'keypress');
|
||||
expect(callback).toHaveBeenCalled();
|
||||
expect(callback.callCount).toBe(1);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user