aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2011-10-27 17:11:40 -0400
committerDave Methvin <dave.methvin@gmail.com>2011-10-27 17:11:40 -0400
commit5c0c86378a602fbc06535617fc5d712fa6d6e024 (patch)
tree1329f2ad0252f2f39611f5983f1cf0a0be3e55d7 /src
parentdf4a160be7fcc234a8e17eccb1c3fd02f231bcfc (diff)
downloadjquery-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.js7
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];