javascript实现ecshop搜索框键盘上下键切换控制


Posted in Javascript onMarch 18, 2015

在createSelect()函数中,返回一个对象,这个对象的两个方法next()
和prev()中的调用的moveSelect()能正确的指向到该函数,也可以把
moveSelect()函数放到外面来。

/* 键盘操作与问题推荐选择 */

    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);//键盘弹起的时候应该取消定时ajax获取数据操作

        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');

            //当前hover的步数

            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);

            }

        };

    };

以上就是本文分享给大家的全部内容了,希望大家能够喜欢

Javascript 相关文章推荐
在一个form用一个SUBMIT(或button)分别提交到两个处理表单页面的代码
Feb 15 Javascript
jquery对表单操作2
Apr 06 Javascript
简单的jquery拖拽排序效果实现代码
Sep 20 Javascript
最简单的js图片切换效果实现代码
Sep 24 Javascript
图片延迟加载的实现代码(模仿懒惰)
Mar 29 Javascript
Js与下拉列表处理问题解决
Feb 13 Javascript
js使用ajax读博客rss示例
May 06 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
利用iscroll4实现轮播图效果实例代码
Jan 11 Javascript
Vue.js组件实现选项卡以及切换特效
Jul 24 Javascript
JS实现网页端猜数字小游戏
Mar 06 Javascript
node使用async_hooks模块进行请求追踪
Jan 28 Javascript
javascript版2048小游戏
Mar 18 #Javascript
JavaScript判断用户是否对表单进行了修改的方法
Mar 18 #Javascript
JavaScript阻止浏览器返回按钮的方法
Mar 18 #Javascript
JavaScript列表框listbox全选和反选的实现方法
Mar 18 #Javascript
JavaScript控制listbox列表框的项目上下移动的方法
Mar 18 #Javascript
JavaScript控制两个列表框listbox左右交换数据的方法
Mar 18 #Javascript
jQuery实现根据类型自动显示和隐藏表单
Mar 18 #Javascript
You might like
PHP分页显示制作详细讲解
2008/11/19 PHP
PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例
2015/05/12 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
理解AngularJs指令
2015/12/10 Javascript
JavaScript正则表达式的分组匹配详解
2016/02/13 Javascript
浅谈jQuery双事件多重加载的问题
2016/10/05 Javascript
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
vue-cli入门之项目结构分析
2017/04/20 Javascript
3分钟掌握常用的JS操作JSON方法总结
2017/04/25 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
Python使用pylab库实现画线功能的方法详解
2017/06/08 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
ZABBIX3.2使用python脚本实现监控报表的方法
2019/07/02 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
Python numpy数组转置与轴变换
2019/11/15 Python
python GUI库图形界面开发之PyQt5简单绘图板实例与代码分析
2020/03/08 Python
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
大学专科生推荐信范文
2013/11/23 职场文书
护理人员的自我评价分享
2014/03/15 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
党校毕业心得体会
2014/09/13 职场文书
民主生活会对照检查材料思想汇报
2014/09/27 职场文书
购房个人委托书范本
2014/10/11 职场文书
2014年班干部工作总结
2014/11/25 职场文书
聚众斗殴罪辩护词
2015/05/21 职场文书
联谊会开场白
2015/06/01 职场文书
办公室日常管理制度
2015/08/04 职场文书
反邪教学习心得体会
2016/01/15 职场文书