javascript實現(xiàn)ecshop搜索框鍵盤上下鍵切換控制
在createSelect()函數(shù)中,返回一個對象,這個對象的兩個方法next()
和prev()中的調(diào)用的moveSelect()能正確的指向到該函數(shù),也可以把
moveSelect()函數(shù)放到外面來。
/* 鍵盤操作與問題推薦選擇 */
var curDo = null;
var select = createSelect();
$('#keywords').keyup(function(e){
var theEvent = e || window.event;
code = theEvent.keyCode ? theEvent.keyCode : (theEvent.which ? theEvent.which : theEvent.charCode)
var KEY = {
UP: 38,
DOWN: 40,
DEL: 46,
TAB: 9,
RETURN: 13,
ESC: 27,
BACKSPACE: 8,
LEFT:37,
RIGHT:39
};
clearTimeout(curDo);//鍵盤彈起的時候應(yīng)該取消定時ajax獲取數(shù)據(jù)操作
switch(code) {
case KEY.UP:
select.next();
break;
case KEY.DOWN:
select.prev();
break;
case KEY.RETURN:
$('.suggest-hover').trigger('click');
break;
case KEY.LEFT:
break;
case KEY.RIGHT:
break;
default:
curDo = setTimeout(getSuggest(),300);
break;
}
});
/* suggest選擇操作 */
function createSelect(){
var CLASSES = {
ACTIVE: "suggest-hover"
};
function moveSelect(step) {
var listItems=$('.suggest-results li');
//當(dāng)前hover的步數(shù)
var active;
active = $('.'+CLASSES.ACTIVE).index();
listItems.eq(active).removeClass(CLASSES.ACTIVE);
active += step;
if (active < 0) {
active = listItems.size() - 1;
} else if (active >= listItems.size()) {
active = 0;
}
var activeItem = listItems.eq(active).addClass(CLASSES.ACTIVE);
};
return {
next:function(){
moveSelect(-1);
},
prev:function(){
moveSelect(1);
}
};
};
以上就是本文分享給大家的全部內(nèi)容了,希望大家能夠喜歡
相關(guān)文章
javascript實現(xiàn)的textarea運行框效果代碼 不用指定id批量指定
今天在寫一個網(wǎng)頁的時候用到了N多嵌套在textarea標(biāo)簽里的代碼,定義雙擊運行其內(nèi)的代碼段。但是每次創(chuàng)建一個這樣的可運行的實例都要給textarea元素自定義一個id值和寫入雙擊事件,好不麻煩。2009-12-12關(guān)于layui的動態(tài)圖標(biāo)不顯示的解決方法
今天小編就為大家分享一篇關(guān)于layui的動態(tài)圖標(biāo)不顯示的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09javascript里絕對用的上的字符分割函數(shù)總結(jié)
本節(jié)主要介紹了javascript里比較實用的字符分割函數(shù)的使用,需要的朋友可以參考下2014-07-07詳解javascript 正則表達(dá)式之分組與前瞻匹配
本文主要講解javascript 的正則表達(dá)式中的分組匹配與前瞻匹配的,需要對正則的有基本認(rèn)識,本人一直對兩種匹配模棱不清,還有不清楚的朋友跟隨腳本之家小編一起看看吧2018-05-05JavaScript與Div對層定位和移動獲得坐標(biāo)的實現(xiàn)代碼
JavaScript與Div對層定位和移動獲得坐標(biāo)的實現(xiàn)代碼,需要的朋友可以參考下。2010-09-09