X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent.js;h=ebdcc59dba1ab803b2f0e69f7185d26aa385fff0;hb=31b573185b7728fa74452fbecc515c6de94640a6;hp=232fa277521e5cc7bc111379588d3f28505dcb73;hpb=aef1989ba74ee568f8bab3ac0967fd849816da12;p=jquery.git diff --git a/src/event.js b/src/event.js index 232fa27..ebdcc59 100644 --- a/src/event.js +++ b/src/event.js @@ -66,7 +66,7 @@ jQuery.event = { if ( special.add ) { var modifiedHandler = special.add.call( elem, handler, data, namespaces ); if ( modifiedHandler && jQuery.isFunction( modifiedHandler ) ) { - modifiedHandler.guid = handler.guid; + modifiedHandler.guid = modifiedHandler.guid || handler.guid; handler = modifiedHandler; } } @@ -160,7 +160,7 @@ jQuery.event = { break; } if ( !ret ) { - if ( !this.special[ type ] || this.special[ type ].teardown.call( elem, namespaces ) === false ) { + if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) { if ( elem.removeEventListener ) { elem.removeEventListener( type, jQuery.data( elem, "handle" ), false ); } else if ( elem.detachEvent ) { @@ -214,11 +214,11 @@ jQuery.event = { event.stopPropagation(); // Only trigger if we've ever bound an event for it if ( this.global[ type ] ) { - for ( var cached in jQuery.cache ) { - if ( cached.events && cached.events[ type ] ) { - this.trigger( event, data, cached.handle.elem ); + jQuery.each( jQuery.cache, function() { + if ( this.events && this.events[type] ) { + jQuery.event.trigger( event, data, this.handle.elem ); } - } + }); } } @@ -351,8 +351,8 @@ jQuery.event = { // Calculate pageX/Y if missing and clientX/Y available if ( event.pageX == null && event.clientX != null ) { var doc = document.documentElement, body = document.body; - event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc.clientLeft || 0); - event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc.clientTop || 0); + event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0); + event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0); } // Add which for key events