aboutsummaryrefslogtreecommitdiffstats
path: root/src/event.js
diff options
context:
space:
mode:
authorDave Methvin <dave.methvin@gmail.com>2011-09-07 21:02:13 -0400
committertimmywil <timmywillisn@gmail.com>2011-09-19 15:42:31 -0400
commit9aa553aa18e79989dfa002ae5a295f626951bdf5 (patch)
tree897f836dd5b0c2367b52751bcf9b01fdf28980fd /src/event.js
parentecd10464e8659b008e52161cc029f9d6863e33b3 (diff)
downloadjquery-9aa553aa18e79989dfa002ae5a295f626951bdf5.tar.gz
jquery-9aa553aa18e79989dfa002ae5a295f626951bdf5.zip
Rework #1486 patch to avoid `try/catch` and look for hidden elements by `.offsetWidth`. Unit test currently disabled due to Chrome bug.
Diffstat (limited to 'src/event.js')
-rw-r--r--src/event.js26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/event.js b/src/event.js
index fd61bca83..2b05d9a64 100644
--- a/src/event.js
+++ b/src/event.js
@@ -387,23 +387,21 @@ jQuery.event = {
// 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.
- // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch.
- try {
- if ( ontype && elem[ type ] ) {
- // Don't re-trigger an onFOO event when we call its FOO() method
- old = elem[ ontype ];
-
- if ( old ) {
- elem[ ontype ] = null;
- }
+ // IE<9 dies on focus to hidden element (#1486)
+ if ( ontype && elem[ type ] && elem.offsetWidth !== 0 ) {
+ // Don't re-trigger an onFOO event when we call its FOO() method
+ old = elem[ ontype ];
- jQuery.event.triggered = type;
- elem[ type ]();
+ if ( old ) {
+ elem[ ontype ] = null;
}
- } catch ( ieError ) {}
- if ( old ) {
- elem[ ontype ] = old;
+ jQuery.event.triggered = type;
+ elem[ type ]();
+
+ if ( old ) {
+ elem[ ontype ] = old;
+ }
}
jQuery.event.triggered = undefined;