From: Brandon Aaron Date: Sat, 8 Dec 2007 02:54:09 +0000 (+0000) Subject: Fix for #1486. Prevent IE from throwing an error when triggering focus on hidden... X-Git-Url: http://git.asbjorn.it/?a=commitdiff_plain;h=91f1299f68a68728467a2566a38845d82e30606f;p=jquery.git Fix for #1486. Prevent IE from throwing an error when triggering focus on hidden input. --- diff --git a/src/event.js b/src/event.js index f71a1df..f7a6cb9 100644 --- a/src/event.js +++ b/src/event.js @@ -193,7 +193,10 @@ jQuery.event = { // Trigger the native events (except for clicks on links) if ( fn && donative !== false && val !== false && !(jQuery.nodeName(element, 'a') && type == "click") ) { this.triggered = true; - element[ type ](); + try { + element[ type ](); + // prevent IE from throwing an error for some hidden elements + } catch (e) {} } this.triggered = false; diff --git a/test/unit/event.js b/test/unit/event.js index e27530e..d0897e4 100644 --- a/test/unit/event.js +++ b/test/unit/event.js @@ -121,7 +121,7 @@ test("unbind(event)", function() { }); test("trigger(event, [data], [fn])", function() { - expect(66); + expect(67); var handler = function(event, a, b, c) { equals( event.type, "click", "check passed data" ); @@ -193,6 +193,16 @@ test("trigger(event, [data], [fn])", function() { // Trigger only the handlers (no native) and extra fn, with external event obj // Triggers 9 equals( $("#firstp").triggerHandler("click", [eventObj, 1, "2", "abc"], handler), "test", "Verify handler response" ); + + var pass = true; + try { + $('input:first') + .hide() + .trigger('focus'); + } catch(e) { + pass = false; + } + ok( pass, "Trigger focus on hidden element" ); // have the extra handler override the return // Triggers 9