2011-04-17 45 views
2

我做了一個網站的AutoSuggest小部件,它的工作方式是,當用戶在輸入文本框中寫入的東西與建議的div顯示,用戶可以通過鼠標導航或上下箭頭。每個單詞都是單獨建議的(不同於谷歌sugest中整個短語的外觀)
我在使用Google Chrome輸入框時出現問題,因爲當我按下向上或向下箭頭時,瀏覽器有一個默認行爲 - 跳轉(如Home或End按鈕),Firefox或Interet Explorer沒有這種效果,我怎麼禁用這個效果?
我從事件處理函數返回'false'功能,並且還使用從這裏http://www.javascripter.net/faq/canceleventbubbling.htm但仍CARRET是跳躍在Chrome的功能...谷歌鉻取消向上和向下箭頭事件

編輯:在Safari同樣的效果......

+0

一年前編寫autosuggest時出現同樣的問題... – wong2 2011-04-17 15:00:42

+0

我注意到Safari中存在相同的行爲,所以它是WebKit的工作方式--- 此外,還發現要將此工作作爲我想用戶必須使用CTRL +向下或向上... – Pax0r 2011-04-17 20:28:21

+0

你使用jQuery嗎?無論哪種方式,嘗試使用'return false;'捕獲'keydown','keyup'和'keypress',並在返回之前將您的導航代碼放入'keydown'處理程序中。 – 2011-04-18 10:38:08

回答

0

你試過阻止默認行爲?

window.addEventListener('keydown', function(e) { 
    e.preventDefault(); 
    ... 
}, false); 
+0

即時通訊不使用jQuery,但我依然不會工作因爲這不是一個事件行爲。我這樣做的方式是,當keydown被解僱時,脫字號的位置仍然很好,所以我可以存儲這個位置,然後跳回去。 – Pax0r 2011-06-12 22:21:40

相關問題