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 DOM 编程艺术》读书笔记之JavaScript 图片库
Jan 09 Javascript
JS基于面向对象实现的拖拽库实例
Sep 24 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
javascript实现简单的on事件绑定
Aug 23 Javascript
javascript self对象使用详解
Oct 18 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
微信小程序多列选择器range-key使用详解
Mar 30 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
JS 实现获取验证码 倒计时功能
Oct 29 Javascript
基于原生js实现判断元素是否有指定class名
Jul 11 Javascript
详解vue中v-model和v-bind绑定数据的异同
Aug 10 Javascript
JavaScript实现网页跨年倒计时
Dec 02 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
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
浅谈php提交form表单
2015/07/01 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHPStrom 新建FTP项目以及在线操作教程
2016/10/16 PHP
php中字符串和整数比较的操作方法
2019/06/06 PHP
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
2010/05/21 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
ES6知识点整理之Proxy的应用实例详解
2019/04/16 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
python实现简单socket通信的方法
2016/04/19 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
在Python中COM口的调用方法
2019/07/03 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
Django 解决model 反向引用中的related_name问题
2020/05/19 Python
基于python检查矩阵计算结果
2020/05/21 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
2020/06/24 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
斯洛伐克家具和时尚装饰品购物网站:Butlers.sk
2019/09/08 全球购物
计算机大学生的自我评价
2013/10/15 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
Python利用FlashText算法实现替换字符串
2022/03/31 Python