diff options
author | jeresig <jeresig@gmail.com> | 2010-01-25 16:45:39 -0500 |
---|---|---|
committer | jeresig <jeresig@gmail.com> | 2010-01-25 16:45:39 -0500 |
commit | 0474917c9d82fa13d865282d2da2d3cb6e5b89ec (patch) | |
tree | 043248e333650a4c2fb72f52aba8ed89b754569f /src/event.js | |
parent | e01ff6cda1be44900b9829c718733923b71db11f (diff) | |
download | jquery-0474917c9d82fa13d865282d2da2d3cb6e5b89ec.tar.gz jquery-0474917c9d82fa13d865282d2da2d3cb6e5b89ec.zip |
Make sure multiple bound events have their namespaces and data maintained. Fixes #3549.
Diffstat (limited to 'src/event.js')
-rw-r--r-- | src/event.js | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/event.js b/src/event.js index 987318547..8ec1d4f36 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 ] = {}; |