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 相关文章推荐
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
基于jquery的滑动样例代码
Nov 20 Javascript
Dreamweaver jQuery智能提示插件,支持版本提示,支持1.6api
Jul 31 Javascript
Jquery图形报表插件 jqplot简介及参数详解
Oct 10 Javascript
js解析json读取List中的实体对象示例
Mar 11 Javascript
js隐式全局变量造成的bug示例代码
Apr 22 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
关于vue.js弹窗组件的知识点总结
Sep 11 Javascript
浅析JS中对函数function的理解(基础篇)
Oct 14 Javascript
微信小程序 仿猫眼实现实例代码
Mar 14 Javascript
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 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
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
基于php缓存的详解
2013/05/15 PHP
YII Framework框架教程之缓存用法详解
2016/03/14 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
超酷的网页音乐播放器DewPlayer使用方法
2010/12/18 Javascript
TBCompressor js代码压缩
2011/01/05 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
3种不同方式的焦点图轮播特效分享
2013/10/30 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
python字典序问题实例
2014/09/26 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python如何转换字符串大小写
2020/06/04 Python
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
大学生实习期自我评价范文
2013/10/03 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
学校食品安全实施方案
2014/06/14 职场文书
室内趣味活动方案
2014/08/24 职场文书
信用卡工资证明范本
2014/10/17 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
车间班组长竞聘书
2015/09/15 职场文书
Python基于Opencv识别两张相似图片
2021/04/25 Python
Go语言中的UTF-8实现
2021/04/26 Golang
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
MongoDB 常用的crud操作语句
2021/06/20 MongoDB