我正在尋找一種方法,能夠在未選擇任何內容的情況下開始在網站上輸入內容,然後在焦點上輸入特定字段。設置輸入字段專注於開始輸入
谷歌也使用此功能。在他們的搜索結果中,您可以點擊任意位置(離焦搜索字段),當您開始輸入時,會自動再次搜索字段。
我在想關於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