mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-15 18:23:09 +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];
|
delete events[type];
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
if (isUndefined(fn)) {
|
forEach(type.split(' '), function(type) {
|
||||||
removeEventListenerFn(element, type, events[type]);
|
if (isUndefined(fn)) {
|
||||||
delete events[type];
|
removeEventListenerFn(element, type, events[type]);
|
||||||
} else {
|
delete events[type];
|
||||||
arrayRemove(events[type], fn);
|
} 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() {
|
it('should deregister specific listener', function() {
|
||||||
var aElem = jqLite(a),
|
var aElem = jqLite(a),
|
||||||
clickSpy1 = jasmine.createSpy('click1'),
|
clickSpy1 = jasmine.createSpy('click1'),
|
||||||
|
|
@ -974,6 +999,32 @@ describe('jqLite', function() {
|
||||||
browserTrigger(a, 'click');
|
browserTrigger(a, 'click');
|
||||||
expect(clickSpy2).not.toHaveBeenCalled();
|
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