2017-04-20 23 views
1

我使用實現鍵盤快捷鍵jquery.hotkeys鍵聯結。jQuery.HotKeys而輸入集中

我的代碼:

$(document).bind('keydown', 'Ctrl+f', function() { 
     $('#myid').focus(); 
     return false; 
    }); 

這工作得很好。但是,如果任何輸入焦點,按鍵默認爲瀏覽器原始(在這種情況下查找)。如果我在輸入框外單擊,jQuery.hotkeys會調用目標函數。

,我應該怎麼做,如果我想獲得均勻的行爲輸入是否集中與否?

+0

做所有的熱鍵開始與CTRL? 。 – Kramb

+0

@Kramb是的,很不幸:-( –

回答

0

參見文檔:https://github.com/jeresig/jquery.hotkeys#hotkeys-within-inputs

熱鍵如果用戶被聚焦的輸入元件 或除非你直接綁定 熱鍵到元件具有CONTENTEDITABLE =「真」的任何元件內不跟蹤。這有助於避免與 正常用戶輸入衝突。如果你不希望這樣,您可以更改以下的 布爾適合:

jQuery.hotkeys.options.filterInputAcceptingElements jQuery.hotkeys.options.filterContentEditable jQuery.hotkeys.options.filterTextInputs(不建議使用,在以後的版本將被刪除 )

+0

我看到這些選項,但他們要麼沒有工作或我不知道他們的語法(有,我掙扎了一些jQuery的基礎知識),我認爲是應該是:'jQuery的。 hotkeys.options.filterInputAcceptingElements = false;'但這不起作用,它是正確的嗎? –

0

你可以給這個一杆:

$(document).bind('keydown', function(e) { 
    if (e.ctrlKey && e.which == 70) { 
     $('#myid').focus(); 
     return false; 
    } 
}); 

的問題是,它不使用插件。所以,請隨時不要標記這個答案,即使它適合你,因爲它不回答最初的問題恕我直言。