X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fevent.js;h=ebdcc59dba1ab803b2f0e69f7185d26aa385fff0;hb=31b573185b7728fa74452fbecc515c6de94640a6;hp=6987300835b02ce7d1095f13d5a2ceafa4b08492;hpb=71efbdd3b26f3a283f8d4bfdcc7b6343142027b9;p=jquery.git diff --git a/src/event.js b/src/event.js index 6987300..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 @@ -601,7 +601,7 @@ jQuery.fn.extend({ }); function liveHandler( event ) { - var stop = true, elems = []; + var stop = true, elems = [], args = arguments; jQuery.each( jQuery.data( this, "events" ).live || [], function( i, fn ) { if ( fn.live === event.type ) { @@ -619,7 +619,7 @@ function liveHandler( event ) { jQuery.each(elems, function() { event.currentTarget = this.elem; event.data = this.fn.data - if ( this.fn.call( this.elem, event, this.fn.selector ) === false ) { + if ( this.fn.apply( this.elem, args ) === false ) { return (stop = false); } });