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入门教程(12) js对象化编程
Jan 31 Javascript
jquery showModelDialog的使用方法示例详解
Nov 19 Javascript
JavaScript的事件代理和委托实例分析
Mar 25 Javascript
jQuery实现的五子棋游戏实例
Jun 13 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
Js+Ajax,Get和Post在使用上的区别小结
Jun 08 Javascript
Jqprint实现页面打印
Jan 06 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
AngularJS日程表案例详解
Aug 15 Javascript
JSONP解决JS跨域问题的实现
May 25 Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 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 编写的 25个游戏脚本
2009/05/11 PHP
PHP读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
PHP const定义常量及global定义全局常量实例解析
2020/05/28 PHP
使用Microsoft Ajax Minifier减小JavaScript文件大小的方法
2010/04/01 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
javascript操作referer详细解析
2014/03/10 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
Vue.js第四天学习笔记
2016/12/02 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
浅谈layui 表单元素的选中问题
2019/10/25 Javascript
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
Web页面中八种创建多列等高(等高列布局)的实现技术
2012/12/24 HTML / CSS
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
学生党员思想汇报范文
2014/01/09 职场文书
旷课检讨书1000字
2014/02/14 职场文书
卫生院健康教育实施方案
2014/06/07 职场文书
继承权公证书范本
2015/01/23 职场文书
2015入党个人自传范文
2015/06/26 职场文书
2015初一年级组工作总结
2015/07/24 职场文书
解决golang在import自己的包报错的问题
2021/04/29 Golang
js实现模拟购物商城案例
2021/05/18 Javascript
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫