diff options
author | Dave Methvin <dave.methvin@gmail.com> | 2011-10-27 17:11:40 -0400 |
---|---|---|
committer | Dave Methvin <dave.methvin@gmail.com> | 2011-10-27 17:11:40 -0400 |
commit | 5c0c86378a602fbc06535617fc5d712fa6d6e024 (patch) | |
tree | 1329f2ad0252f2f39611f5983f1cf0a0be3e55d7 /src | |
parent | df4a160be7fcc234a8e17eccb1c3fd02f231bcfc (diff) | |
download | jquery-5c0c86378a602fbc06535617fc5d712fa6d6e024.tar.gz jquery-5c0c86378a602fbc06535617fc5d712fa6d6e024.zip |
DRY the hover pseudo-event, get the type right, allow override.
Now with working unit test for extra correctness! If external code defines a special.hover event, we won't string-hack "hover" into "mouseenter mouseleave".
Diffstat (limited to 'src')
-rw-r--r-- | src/event.js | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/event.js b/src/event.js index dcbeb4b7f..509468328 100644 --- a/src/event.js +++ b/src/event.js @@ -26,6 +26,9 @@ var rnamespaces = /\.(.*)$/, (!m[2] || elem.id === m[2]) && (!m[3] || m[3].test( elem.className )) ); + }, + hoverHack = function( events ) { + return jQuery.event.special.hover ? events : events.replace( rhoverHack, "mouseenter$1 mouseleave$1" ); }; /* @@ -76,7 +79,7 @@ jQuery.event = { // Handle multiple events separated by a space // jQuery(...).bind("mouseover mouseout", fn); - types = types.replace( rhoverHack, "mouseover$1 mouseout$1" ).split( " " ); + types = hoverHack(types).split( " " ); for ( t = 0; t < types.length; t++ ) { tns = rtypenamespace.exec( types[t] ) || []; @@ -166,7 +169,7 @@ jQuery.event = { } // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).replace( rhoverHack, "mouseover$1 mouseout$1" ).split(" "); + types = hoverHack( types || "" ).split(" "); for ( t = 0; t < types.length; t++ ) { tns = rtypenamespace.exec( types[t] ) || []; type = tns[1]; |