aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrandon Aaron <brandon.aaron@gmail.com>2007-12-08 02:54:09 +0000
committerBrandon Aaron <brandon.aaron@gmail.com>2007-12-08 02:54:09 +0000
commit91f1299f68a68728467a2566a38845d82e30606f (patch)
tree9e138d0010419b458349e6f0f25ae973f7dc7946
parentffbedf0262b3eea906f39c0115b818d7456a3994 (diff)
downloadjquery-91f1299f68a68728467a2566a38845d82e30606f.tar.gz
jquery-91f1299f68a68728467a2566a38845d82e30606f.zip
Fix for #1486. Prevent IE from throwing an error when triggering focus on hidden input.
-rw-r--r--src/event.js5
-rw-r--r--test/unit/event.js12
2 files changed, 15 insertions, 2 deletions
diff --git a/src/event.js b/src/event.js
index f71a1df92..f7a6cb949 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 e27530e1f..d0897e464 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