我正在寻找一种方法,能够在未选择任何内容的情况下开始在网站上输入内容,然后在焦点上输入特定字段。设置输入字段专注于开始输入
谷歌也使用此功能。在他们的搜索结果中,您可以点击任意位置(离焦搜索字段),当您开始输入时,会自动再次搜索字段。
我在想关于jQuery的一般onkeyup函数来关注字段,有什么建议吗?
非常感谢。
我正在寻找一种方法,能够在未选择任何内容的情况下开始在网站上输入内容,然后在焦点上输入特定字段。设置输入字段专注于开始输入
谷歌也使用此功能。在他们的搜索结果中,您可以点击任意位置(离焦搜索字段),当您开始输入时,会自动再次搜索字段。
我在想关于jQuery的一般onkeyup函数来关注字段,有什么建议吗?
非常感谢。
您应该绑定事件,但立即解除绑定,以便可以在其他文本输入中继续键入而不将焦点恢复为默认输入。
$(document).bind('keydown',function(e){
$('#defaultInput').focus();
$(document).unbind('keydown');
});
如果计划这样做,我会说使用onKeyUp而不是onKeyDown。它的行动早得多,这将有助于缓解交流的流程。
从我目前对jQuery的理解中,你将不得不将onKeyUp事件绑定到一个对象。你知道是否有可能有“一般onKeyUp事件”? – baik 2011-01-30 00:46:03
将它绑定到`document`对象 – 2011-01-30 01:07:31
答案是如此简单:
$(document).keydown(function() { $('#element').focus(); });
的keydown优先毕竟因为第一个键被按下后KEYUP只会被解雇 - 分别不捕获我的搜索字段中键入的第一个键。
该解决方案没有@ mVChr的解决方案存在的问题:即您可以用鼠标单击另一个输入并开始输入而不会因为绑定而失去焦点。
此外,此解决方案不会删除所有元素的-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);
});
一个很好的快捷方式是$(document).one('keydown',...)`。 – 2011-01-30 02:35:47