Make sure that unbinding on a plain javascript object works correctly. Fixes #6184.
[jquery.git] / src / event.js
index db08bc0..bfe2dd1 100644 (file)
@@ -525,10 +525,14 @@ jQuery.event = {
 
 var removeEvent = document.removeEventListener ?
        function( elem, type, handle ) {
-               elem.removeEventListener( type, handle, false );
+               if ( elem.removeEventListener ) {
+                       elem.removeEventListener( type, handle, false );
+               }
        } : 
        function( elem, type, handle ) {
-               elem.detachEvent( "on" + type, handle );
+               if ( elem.detachEvent ) {
+                       elem.detachEvent( "on" + type, handle );
+               }
        };
 
 jQuery.Event = function( src ) {
@@ -1022,6 +1026,7 @@ function liveHandler( event ) {
 
                                // Those two events require additional checking
                                if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
+                                       event.type = handleObj.preType;
                                        related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
                                }