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 相关文章推荐
JavaScript使用cookie
Feb 02 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
Bootstrap模态对话框的简单使用
Apr 29 Javascript
用headjs来管理和加载js 提高网站加载速度
Nov 29 Javascript
利用js+css+html实现固定table的列头不动
Dec 08 Javascript
JS正则表达式判断有效数实例代码
Mar 13 Javascript
解决vue页面刷新或者后退参数丢失的问题
Mar 13 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
小程序实现列表删除功能
Oct 30 Javascript
基于Node.js搭建hexo博客过程详解
Jun 25 Javascript
解决vue watch数据的方法被调用了两次的问题
Nov 07 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 str_pad 函数用法简介
2009/07/11 PHP
thinkphp的静态缓存用法分析
2014/11/29 PHP
PHP会话处理的10个函数
2015/08/11 PHP
Yii2中多表关联查询hasOne hasMany的方法
2017/02/15 PHP
php实现图片压缩处理
2020/09/09 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
解决表单中第一个非隐藏的元素获得焦点的一个方案
2009/10/26 Javascript
js与jquery实时监听输入框值的oninput与onpropertychange方法
2015/02/05 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
JavaScript之浏览器对象_动力节点Java学院整理
2017/07/03 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
js实现多图和单图上传显示
2019/12/18 Javascript
vue实现图片上传预览功能
2019/12/23 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
为Python的web框架编写MVC配置来使其运行的教程
2015/04/30 Python
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
django 模型字段设置默认值代码
2020/07/15 Python
CSS3条纹背景制作的实战攻略
2016/05/31 HTML / CSS
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
日本航空官方网站:JAL
2019/06/19 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
个人现实表现材料
2014/02/04 职场文书
老公爱的承诺书
2014/03/31 职场文书
高中生班主任评语
2014/04/25 职场文书
大学生社团活动总结
2014/04/26 职场文书
道德演讲稿
2014/05/21 职场文书
2019银行竞聘书
2019/06/21 职场文书