diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2005-12-31 04:14:07 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2005-12-31 04:14:07 +0000 |
commit | d7487fffe51d03f46800e266e4c972ab55238c89 (patch) | |
tree | e959297f49786eb3025daecb1f8bb45de6a134ef /actionpack | |
parent | 89d8afa2c4f256ffb84b6c9e521546b5dd3e60d8 (diff) | |
download | rails-d7487fffe51d03f46800e266e4c972ab55238c89.tar.gz rails-d7487fffe51d03f46800e266e4c972ab55238c89.tar.bz2 rails-d7487fffe51d03f46800e266e4c972ab55238c89.zip |
Made Field.focus in prototype friendly to effects by adding optional delay parameter [DHH]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3366 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_view/helpers/javascripts/prototype.js | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/actionpack/lib/action_view/helpers/javascripts/prototype.js b/actionpack/lib/action_view/helpers/javascripts/prototype.js index e9ccd3c885..545f3af040 100644 --- a/actionpack/lib/action_view/helpers/javascripts/prototype.js +++ b/actionpack/lib/action_view/helpers/javascripts/prototype.js @@ -1154,8 +1154,18 @@ var Field = { $(arguments[i]).value = ''; }, - focus: function(element) { - $(element).focus(); + // Pass the field id or element as the first parameter and optionally a triggering delay in micro-seconds as the second. + // The delay is useful when the focus is part of effects that won't finish instantly since they prevent the focus from + // taking hold. Set the delay to right after the effect finishes and the focus will work. + focus: function() { + element = $(arguments[0]); + delay = arguments[1]; + + if (delay) { + setTimeout(function() { $(element).focus(); }, delay) + } else { + $(element).focus(); + } }, present: function() { |