diff options
| -rw-r--r-- | src/jqLite.js | 14 | ||||
| -rw-r--r-- | test/jqLiteSpec.js | 12 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/jqLite.js b/src/jqLite.js index 122684a5..6b954005 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -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); }); diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index 673bee78..aac5aeb5 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -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'); + }); }); |
