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 相关文章推荐
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
jQuery的css()方法用法实例
Dec 24 Javascript
简化版手机端照片预览组件
Apr 13 Javascript
Javascript实现div的toggle效果实例分析
Jun 09 Javascript
jquery判断当前浏览器的实现代码
Nov 07 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
Dec 01 Javascript
浅析javascript的return语句
Dec 15 Javascript
js实现的下拉框二级联动效果
Apr 30 Javascript
Vue Element使用icon图标教程详解(第三方)
Feb 07 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
Jul 25 Javascript
浅谈webpack 四个核心概念之Entry
Jun 12 Javascript
jquery 遍历hash操作示例【基于ajax交互】
Oct 12 jQuery
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和ACCESS写聊天室(三)
2006/10/09 PHP
PHP动态创建Web站点的方法
2011/08/14 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
JavaScript获得选中文本内容的方法
2008/12/02 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
javascript递归回溯法解八皇后问题
2015/04/22 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
微信小程序实现简单文字跑马灯
2020/05/26 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
Python 多线程实例详解
2017/03/25 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
Python-openCV开运算实例
2020/07/05 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
python中turtle库的简单使用教程
2020/11/11 Python
python实现猜拳游戏项目
2020/11/30 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
HTML5学习笔记之History API
2015/02/26 HTML / CSS
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
班长岗位职责
2013/11/10 职场文书
职专应届生求职信
2013/11/16 职场文书
教师岗位职责
2013/11/17 职场文书
国家励志奖学金个人先进事迹材料
2014/05/04 职场文书
办公室主任个人对照检查材料思想汇报
2014/10/11 职场文书
MySQL kill不掉线程的原因
2021/05/07 MySQL
Java使用JMeter进行高并发测试
2021/11/23 Java/Android