Merging pull request 183 for #7793.
authorjeresig <jeresig@gmail.com>
Mon, 17 Jan 2011 20:45:07 +0000 (15:45 -0500)
committerjeresig <jeresig@gmail.com>
Mon, 17 Jan 2011 20:45:07 +0000 (15:45 -0500)
1  2 
src/event.js
test/unit/event.js

diff --cc src/event.js
@@@ -600,12 -600,10 +600,12 @@@ jQuery.Event = function( src ) 
        if ( src && src.type ) {
                this.originalEvent = src;
                this.type = src.type;
 +
                // Events bubbling up the document may have been marked as prevented
                // by a handler lower down the tree; reflect the correct value.
-               this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
+               this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || 
                        src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
 +
        // Event type
        } else {
                this.type = src;
@@@ -314,7 -314,14 +314,15 @@@ test("bind/delegate bubbling, isDefault
                e.preventDefault();
        });
        $main.delegate("#foo", "click", function(e) {
-               equals( e.isDefaultPrevented(), true, "isDefaultPrevented true passed to bubbled event" );
+               var orig = e.originalEvent;
++
+               if ( typeof(orig.defaultPrevented) === "boolean" || typeof(orig.returnValue) === "boolean" || orig.getPreventDefault ) {
+                       equals( e.isDefaultPrevented(), true, "isDefaultPrevented true passed to bubbled event" );
 -              }
 -              else {
++
++              } else {
+                       // Opera < 11 doesn't implement any interface we can use, so give it a pass
+                       ok( true, "isDefaultPrevented not supported by this browser, test skipped" );
+               }
        });
        fakeClick( $anchor2 );
        $anchor2.unbind( "click" );