diff options
author | Dave Methvin <dave.methvin@gmail.com> | 2011-09-07 21:02:13 -0400 |
---|---|---|
committer | timmywil <timmywillisn@gmail.com> | 2011-09-19 15:42:31 -0400 |
commit | 9aa553aa18e79989dfa002ae5a295f626951bdf5 (patch) | |
tree | 897f836dd5b0c2367b52751bcf9b01fdf28980fd /src/event.js | |
parent | ecd10464e8659b008e52161cc029f9d6863e33b3 (diff) | |
download | jquery-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.js | 26 |
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; |