Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fixes #12518, removes an offsetWidth on focus/blur events for an <IE9…
… bug that caused a performance hit. Closes gh-958
- Loading branch information
Showing
with
7 additions
and
3 deletions.
-
+7
−3
src/event.js
|
@@ -327,8 +327,7 @@ 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. |
|
|
// Don't do default actions on window, that's where global variables be (#6170) |
|
|
// 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 ) ) { |
|
|
if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { |
|
|
|
|
|
// Don't re-trigger an onFOO event when we call its FOO() method |
|
|
old = elem[ ontype ]; |
|
@@ -339,7 +338,12 @@ jQuery.event = { |
|
|
|
|
|
// Prevent re-triggering of the same event, since we already bubbled it above |
|
|
jQuery.event.triggered = type; |
|
|
elem[ type ](); |
|
|
try { |
|
|
elem[ type ](); |
|
|
} catch ( e ) { |
|
|
// IE<9 dies on focus/blur to hidden element (#1486,#12518) |
|
|
// only reproducible on winXP IE8 native, not IE9 in IE8 mode |
|
|
} |
|
|
jQuery.event.triggered = undefined; |
|
|
|
|
|
if ( old ) { |
|
|