将输入字段焦点设置为开始键入
我正在寻找一种方法,可以在没有选择任何东西的情况下开始在网站上打字,然后有一个特定的输入字段。
谷歌也采用了这一function。 在搜索结果中,您可以单击任意位置(使搜索字段散焦),当您开始键入时,它会再次自动关注搜索字段。
我在考虑jQuery一般的onkeyupfunction,专注于该领域,有什么建议吗?
非常感激。
您应该绑定keydown
事件,但立即取消绑定,以便在其他文本输入中继续键入而不将焦点恢复为默认输入。
$(document).bind('keydown',function(e){ $('#defaultInput').focus(); $(document).unbind('keydown'); });
见这里的例子。
这个解决方案没有@mVChr的解决方案所具有的问题:即你可以用鼠标点击另一个输入并开始键入而不会因为keydown
-binding而失去焦点。
此解决方案也不会删除所有元素的keydown
-bindings,而是使用命名处理程序。
var default_input_handler = function() { $('.default-input').focus(); $(document).off('keydown', default_input_handler); } $(document).on('keydown', default_input_handler); $('input, textarea, select').on('focus', function() { $(document).off('keydown', default_input_handler); });
如果计划这样做,我会说使用onKeyUp而不是onKeyDown。 它的行动早得多,有助于缓解互动的流动。
答案很简单:
$(document).keydown(function() { $('#element').focus(); });
毕竟keydown是首选,因为keyup只会在按下第一个键后触发 – 并且分别不捕获在我的搜索字段中键入的第一个键。