mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
feat(jqLite): add event.isDefaultPrevented() as jQuery
Chrome's Event has defaultPrevented property, but other browsers haven't. This is workaround for other browsers - same as jQuery.
This commit is contained in:
parent
91ccb4ba6e
commit
f37f0ea16e
2 changed files with 26 additions and 0 deletions
|
|
@ -376,6 +376,20 @@ forEach({
|
|||
if (!event.target) {
|
||||
event.target = event.srcElement || document;
|
||||
}
|
||||
|
||||
if (isUndefined(event.defaultPrevented)) {
|
||||
var prevent = event.preventDefault;
|
||||
event.preventDefault = function() {
|
||||
event.defaultPrevented = true;
|
||||
prevent.call(event);
|
||||
};
|
||||
event.defaultPrevented = false;
|
||||
}
|
||||
|
||||
event.isDefaultPrevented = function() {
|
||||
return event.defaultPrevented;
|
||||
};
|
||||
|
||||
forEach(eventHandler.fns, function(fn){
|
||||
fn.call(element, event);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -443,6 +443,18 @@ describe('jqLite', function(){
|
|||
|
||||
browserTrigger(a, 'click');
|
||||
});
|
||||
|
||||
it('should have event.isDefaultPrevented method', function() {
|
||||
jqLite(a).bind('click', function(e) {
|
||||
expect(function() {
|
||||
expect(e.isDefaultPrevented()).toBe(false);
|
||||
e.preventDefault();
|
||||
expect(e.isDefaultPrevented()).toBe(true);
|
||||
}).not.toThrow();
|
||||
});
|
||||
|
||||
browserTrigger(a, 'click');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue