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 相关文章推荐
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
JS中FRAME的操作问题实例分析
Oct 21 Javascript
js判断鼠标左、中、右键哪个被点击的方法
Jan 27 Javascript
javascript实现控制文字大中小显示
Apr 28 Javascript
基于React.js实现原生js拖拽效果引发的思考
Mar 30 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
Jun 08 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
vue2组件实现懒加载浅析
Mar 29 Javascript
JS运动特效之同时运动实现方法分析
Jan 24 Javascript
解决layui的input独占一行的问题
Sep 10 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
vue使用openlayers实现移动点动画
Sep 24 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中类属性与类静态变量的访问方法示例
2016/07/13 PHP
jquery checkbox,radio是否选中的判断代码
2010/03/20 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
BootStrap中的Fontawesome 图标
2017/05/25 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
2017/09/04 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
Element Collapse 折叠面板的使用方法
2020/07/26 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
[45:25]完美世界DOTA2联赛循环赛 PXG vs IO 第一场 11.06
2020/11/09 DOTA
wxPython学习之主框架实例
2014/09/28 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python编程实现从字典中提取子集的方法分析
2018/02/09 Python
Python实现k-means算法
2018/02/23 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
解决django-xadmin列表页filter关联对象搜索问题
2019/11/15 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
Python如何实现的二分查找算法
2020/05/27 Python
Python编写万花尺图案实例
2021/01/03 Python
介绍一下游标
2012/01/10 面试题
如何保障Web服务器安全
2014/05/05 面试题
面试后的英文感谢信
2014/02/01 职场文书
小学生演讲稿大全
2014/04/25 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
班子群众路线教育实践个人对照检查材料思想汇报
2014/09/30 职场文书
停水通知
2015/04/16 职场文书
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js