X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;ds=sidebyside;f=src%2Fevent.js;h=58f7a3190f959732709a88c353617a1a983a8225;hb=390186b902c4c1ac13e23754d33ed4d8b3d5fa38;hp=9873185472adcf50f2bc37983b9a0d01494ab224;hpb=d24443fb55ddc6a309c08a9a248128fef269d2a3;p=jquery.git diff --git a/src/event.js b/src/event.js index 9873185..58f7a31 100644 --- a/src/event.js +++ b/src/event.js @@ -71,19 +71,28 @@ jQuery.event = { // Handle multiple events separated by a space // jQuery(...).bind("mouseover mouseout", fn); types = types.split( /\s+/ ); - var type, i=0; + + var type, i = 0; + while ( (type = types[ i++ ]) ) { // Namespaced event handlers var namespaces = type.split("."); type = namespaces.shift(); + + if ( i > 1 ) { + handler = jQuery.proxy( handler ); + + if ( data !== undefined ) { + handler.data = data; + } + } + handler.type = namespaces.slice(0).sort().join("."); // Get the current list of functions bound to this event var handlers = events[ type ], special = this.special[ type ] || {}; - - // Init the event handler queue if ( !handlers ) { handlers = events[ type ] = {}; @@ -105,6 +114,8 @@ jQuery.event = { var modifiedHandler = special.add.call( elem, handler, data, namespaces, handlers ); if ( modifiedHandler && jQuery.isFunction( modifiedHandler ) ) { modifiedHandler.guid = modifiedHandler.guid || handler.guid; + modifiedHandler.data = modifiedHandler.data || handler.data; + modifiedHandler.type = modifiedHandler.type || handler.type; handler = modifiedHandler; } }