X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent.js;h=a32f0339c8d9829e7b97b4f888fa9d682e8db588;hb=f25eedf32a7555f71a246c6f491292ce876c4133;hp=e070cb2619e1a6ab2474af5130ab7fc5c13e4f9c;hpb=1052792bb23b56d25dcbacd3816c8b5a08bc9b72;p=jquery.git diff --git a/src/event.js b/src/event.js index e070cb2..a32f033 100644 --- a/src/event.js +++ b/src/event.js @@ -253,8 +253,10 @@ jQuery.event = { var nativeFn, nativeHandler; try { - nativeFn = elem[ type ]; - nativeHandler = elem[ "on" + type ]; + if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) { + nativeFn = elem[ type ]; + nativeHandler = elem[ "on" + type ]; + } // prevent IE from throwing an error for some elements with some event types, see #3533 } catch (e) {} @@ -883,6 +885,10 @@ jQuery.each( ("blur focus load resize scroll unload click dblclick " + jQuery.fn[ name ] = function( fn ) { return fn ? this.bind( name, fn ) : this.trigger( name ); }; + + if ( jQuery.fnAttr ) { + jQuery.fnAttr[ name ] = true; + } }); // Prevent memory leaks in IE @@ -894,7 +900,10 @@ jQuery( window ).bind( 'unload', function() { for ( var id in jQuery.cache ) { // Skip the window if ( id != 1 && jQuery.cache[ id ].handle ) { - jQuery.event.remove( jQuery.cache[ id ].handle.elem ); + // Try/Catch is to handle iframes being unloaded, see #4280 + try { + jQuery.event.remove( jQuery.cache[ id ].handle.elem ); + } catch(e) {} } } });