mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
parent
f274c0a66b
commit
bdd4e982b7
2 changed files with 59 additions and 6 deletions
|
|
@ -207,12 +207,14 @@ function JQLiteOff(element, type, fn) {
|
|||
delete events[type];
|
||||
});
|
||||
} else {
|
||||
if (isUndefined(fn)) {
|
||||
removeEventListenerFn(element, type, events[type]);
|
||||
delete events[type];
|
||||
} else {
|
||||
arrayRemove(events[type], fn);
|
||||
}
|
||||
forEach(type.split(' '), function(type) {
|
||||
if (isUndefined(fn)) {
|
||||
removeEventListenerFn(element, type, events[type]);
|
||||
delete events[type];
|
||||
} else {
|
||||
arrayRemove(events[type], fn);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -947,6 +947,31 @@ describe('jqLite', function() {
|
|||
});
|
||||
|
||||
|
||||
it('should deregister all listeners for types separated by spaces', function() {
|
||||
var aElem = jqLite(a),
|
||||
clickSpy = jasmine.createSpy('click'),
|
||||
mouseoverSpy = jasmine.createSpy('mouseover');
|
||||
|
||||
aElem.on('click', clickSpy);
|
||||
aElem.on('mouseover', mouseoverSpy);
|
||||
|
||||
browserTrigger(a, 'click');
|
||||
expect(clickSpy).toHaveBeenCalledOnce();
|
||||
browserTrigger(a, 'mouseover');
|
||||
expect(mouseoverSpy).toHaveBeenCalledOnce();
|
||||
|
||||
clickSpy.reset();
|
||||
mouseoverSpy.reset();
|
||||
|
||||
aElem.off('click mouseover');
|
||||
|
||||
browserTrigger(a, 'click');
|
||||
expect(clickSpy).not.toHaveBeenCalled();
|
||||
browserTrigger(a, 'mouseover');
|
||||
expect(mouseoverSpy).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
|
||||
it('should deregister specific listener', function() {
|
||||
var aElem = jqLite(a),
|
||||
clickSpy1 = jasmine.createSpy('click1'),
|
||||
|
|
@ -974,6 +999,32 @@ describe('jqLite', function() {
|
|||
browserTrigger(a, 'click');
|
||||
expect(clickSpy2).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
|
||||
it('should deregister specific listener for multiple types separated by spaces', function() {
|
||||
var aElem = jqLite(a),
|
||||
masterSpy = jasmine.createSpy('master'),
|
||||
extraSpy = jasmine.createSpy('extra');
|
||||
|
||||
aElem.on('click', masterSpy);
|
||||
aElem.on('click', extraSpy);
|
||||
aElem.on('mouseover', masterSpy);
|
||||
|
||||
browserTrigger(a, 'click');
|
||||
browserTrigger(a, 'mouseover');
|
||||
expect(masterSpy.callCount).toBe(2);
|
||||
expect(extraSpy).toHaveBeenCalledOnce();
|
||||
|
||||
masterSpy.reset();
|
||||
extraSpy.reset();
|
||||
|
||||
aElem.off('click mouseover', masterSpy);
|
||||
|
||||
browserTrigger(a, 'click');
|
||||
browserTrigger(a, 'mouseover');
|
||||
expect(masterSpy).not.toHaveBeenCalled();
|
||||
expect(extraSpy).toHaveBeenCalledOnce();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue