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 相关文章推荐
IE不出现Flash激活框的小发现的js实现方法
Sep 07 Javascript
可以用来调试JavaScript错误的解决方案
Aug 07 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
Apr 17 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
May 18 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
Node.js用readline模块实现输入输出
Dec 16 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 Javascript
浅谈Vue数据绑定的原理
Jan 08 Javascript
基于vue.js实现的分页
Mar 13 Javascript
Vue动态获取width的方法
Aug 22 Javascript
vue 源码解析之虚拟Dom-render
Aug 26 Javascript
解决vue项目,npm run build后,报路径错的问题
Aug 13 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结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
2012/12/12 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
Jquery promise实现一张一张加载图片
2015/11/13 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
Python中字符串的格式化方法小结
2016/05/03 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
Django REST framework 视图和路由详解
2019/07/19 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
谈谈Python:为什么类中的私有属性可以在外部赋值并访问
2020/03/05 Python
Python编写万花尺图案实例
2021/01/03 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
日本PLST在线商店:日本时尚杂志刊载的人气服装
2016/12/10 全球购物
工厂厂长岗位职责
2013/11/08 职场文书
销售经理工作职责
2014/02/03 职场文书
英语专业自荐书
2014/06/13 职场文书
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
党的群众路线教育实践活动对照检查剖析材料
2014/10/09 职场文书
护士长2014年终工作总结
2014/11/11 职场文书
客服专员岗位职责范本
2015/04/07 职场文书
英语投诉信范文
2015/07/03 职场文书
学校隐患排查制度
2015/08/05 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书