Commit 408e5e08 authored by Merrifield, Jay's avatar Merrifield, Jay Committed by Mike Sherov

Fixes #12518, removes an offsetWidth on focus/blur events for an <IE9 bug that...

Fixes #12518, removes an offsetWidth on focus/blur events for an <IE9 bug that caused a performance hit. Closes gh-958
parent a7a8aad4
...@@ -327,8 +327,7 @@ jQuery.event = { ...@@ -327,8 +327,7 @@ jQuery.event = {
// Call a native DOM method on the target with the same name name as the 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. // 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) // 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 ] && !jQuery.isWindow( elem ) ) {
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 // Don't re-trigger an onFOO event when we call its FOO() method
old = elem[ ontype ]; old = elem[ ontype ];
...@@ -339,7 +338,12 @@ jQuery.event = { ...@@ -339,7 +338,12 @@ jQuery.event = {
// Prevent re-triggering of the same event, since we already bubbled it above // Prevent re-triggering of the same event, since we already bubbled it above
jQuery.event.triggered = type; 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; jQuery.event.triggered = undefined;
if ( old ) { if ( old ) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment