2011-10-14 65 views
2

上/下箭頭jQuery的活動,我想在 jQuery Key Events with a Search Box在搜索框中

我想箭頭向上和向下的搜索結果和選擇的Enter鍵或鼠標點擊結果中提到實現類似的功能。 http://jsfiddle.net/CyQ2w/

3個問題:

在找到我的代碼

我能夠箭頭向上和向下,但是當我在最後一個項目之後向下箭頭,對項目的選擇消失。我試圖在最後一項之後禁用瀏覽,即保持最後一項被選中。當我們向上放箭頭時,第一個項目也會發生同樣的事情。

當我將鼠標懸停在項目列表上並將鼠標移出時,選擇懸停被刪除,現在箭頭上下不起作用。

此外,在輸入密鑰似乎並沒有設置選定項目的textarea。我試圖捕獲選定李的「id」。

任何幫助將不勝感激。

回答

3

爲了您第一問題,您可以添加一個檢查類似如下 -

... 
else if (code === 40) { //Down arrow 
     if($("li.hovered").index()==$("li").length-1) return; 
... 
else if (code === 38) { //Up arrow 
     if($("li.hovered").index()==0) return; 
     ... 

這意味着當你在第一項index 0向上箭頭鍵不會做任何事情。

順便說一句,38不是向下箭頭。不要讓其他困惑。 我希望你能自己做下來。

可以解決第二問題像下面 -

$("#userlist_container li").hover(function() { 
    $('li.hovered').removeClass('hovered'); 
    $(this).addClass("hovered"); 
}, function() { 
    // $(this).removeClass("hovered"); 
}); 

而且你第三問題是有點硬不整個代碼解釋在http://jsfiddle.net/CyQ2w/7/

所以請我更新的代碼您應該使用e.preventDefault();

+0

+1 Perfecto!向上箭頭問題似乎解決了。對不起,評論錯誤。已在jfiddle中更新。 :) – johnk1

+0

我能夠解決向下箭頭問題。感謝您的索引邏輯。 – johnk1

+0

它的工作原理。我需要選擇li的id,所以我使用(「li.hovered」)。attr(「id」)。謝謝你的幫助。 :) – johnk1