提交 d7487fff 编写于 作者: D David Heinemeier Hansson

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
上级 89d8afa2
......@@ -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() {
......
......@@ -98,5 +98,6 @@ def test_reflection_of_all_associations
assert_equal 12, Firm.reflect_on_all_associations.size
assert_equal 11, Firm.reflect_on_all_associations(:has_many).size
assert_equal 1, Firm.reflect_on_all_associations(:has_one).size
assert_equal 0, Firm.reflect_on_all_associations(:belongs_to).size
end
end
......@@ -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() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册