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 相关文章推荐
js模仿html5 placeholder适应于不支持的浏览器
Jan 13 Javascript
jQuery操作cookie方法实例教程
Nov 25 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
JavaScript仿flash遮罩动画效果
Jun 15 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
关于javascript事件响应的基础语法总结(必看篇)
Dec 26 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
利用CDN加速react webpack打包后的文件详解
Feb 22 Javascript
javascript实现考勤日历功能
Nov 29 Javascript
详解react-refetch的使用小例子
Feb 15 Javascript
解决 window.onload 被覆盖的问题方法
Jan 14 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
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常用Stream函数集介绍
2013/06/24 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
2011/02/23 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
DWZ刷新dialog解决方法
2013/03/03 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
JavaScript 封装一个tab效果源码分享
2015/09/15 Javascript
JS快速实现移动端拼图游戏
2016/09/05 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
微信小程序之裁剪图片成圆形的实现代码
2018/10/11 Javascript
微信小程序云开发之使用云函数
2019/05/17 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
如何基于python生成list的所有的子集
2019/11/11 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
英国家居用品和家居装饰品购物网站:Cox & Cox
2019/08/25 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
大学生入党推荐书范文
2014/05/17 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
硕士论文致谢范文
2015/05/14 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
MYSQL常用函数介绍
2022/05/05 MySQL