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 ]; + // 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 ]; - if ( old ) { - elem[ ontype ] = null; - } - - 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; diff --git a/test/unit/event.js b/test/unit/event.js index 5bc20801a..c00eb202c 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -34,6 +34,31 @@ test("bind(),live(),delegate() with non-null,defined data", function() { }); +/* +Removed because Chrome 13 snaps/crashes on this 2011-09-07 + +test("Handler changes and .trigger() order", function() { + expect(1); + + var markup = jQuery( + '
b