aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2011-09-10 14:46:58 -0400
committertimmywil <timmywillisn@gmail.com>2011-09-19 15:42:32 -0400
commit06e56acb0d6f3d183389d3bcb7dfb54b7ae7c220 (patch)
treeda5fe110ec73c5bbefd4aa16d4223bd1c76e4d6f
parent4030de9519e91fdc247af3c508a8ede277242c3f (diff)
downloadjquery-06e56acb0d6f3d183389d3bcb7dfb54b7ae7c220.tar.gz
jquery-06e56acb0d6f3d183389d3bcb7dfb54b7ae7c220.zip
Narrow the invisible-element embargo to focus/blur events.
-rw-r--r--src/event.js11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/event.js b/src/event.js
index ea9882d05..0376e49af 100644
--- a/src/event.js
+++ b/src/event.js
@@ -35,8 +35,9 @@ var rnamespaces = /\.(.*)$/,
},
useNativeMethod = function( event ) {
// IE throws error on focus/blur of a hidden element (#1486)
- if ( !event.isDefaultPrevented() && this[ event.type ] && event.target && event.target.offsetWidth !== 0 ) {
- this[ event.type ]();
+ var type = event.type;
+ if ( !event.isDefaultPrevented() && this[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) ) {
+ this[ type ]();
return false;
}
};
@@ -385,10 +386,10 @@ jQuery.event = {
!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
// Call a native DOM method on the target with the same name name as the event.
- // Can't use an .isFunction)() check here because IE6/7 fails that test.
+ // Can't use an .isFunction() check here because IE6/7 fails that test.
// Don't do default actions on window, that's where global variables be (#6170)
- // IE<9 dies on focus to hidden element (#1486)
- if ( ontype && elem[ type ] && elem.offsetWidth !== 0 && !jQuery.isWindow( elem ) ) {
+ // IE<9 dies on focus/blur to hidden element (#1486)
+ if ( ontype && elem[ type ] && ((type !== "focus" && type !== "blur") || event.target.offsetWidth !== 0) && !jQuery.isWindow( elem ) ) {
// Don't re-trigger an onFOO event when we call its FOO() method
old = elem[ ontype ];