Ryan724 / keyutils

JavaScript针对键盘事件监听处理的工具库

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

组件的整体架构

Ryan724 opened this issue · comments

架构(不断改进ing):

  1. 给按键起名字(在keyutils中给每一个按键起一个名字,规范大写) getKeyName();
  2. 输入的键盘按键名称规范化,代码nameStand(data);
  3. 编写一个判断工具,判断数组中是否存在某元素 contains(item,arr);
  4. 寻找页面中data-hotkey的元素属性,labelBindFun();
  5. 定义keyup,keydown,keypress 三中事件
  6. 申明对象,定义要暴露的函数
  7. 执行初始化函数(收集data-hotkey标签的)

编写判断数组的时候使用以下几种方法:

   Array.prototype.contains=function(){
         var i = this.length;
         while (i--) {
            if (this[i] === obj) {
               return true;
            }
         }
       return false;
   }

但是我选择了这么写:

    var contains = function(item,arr){ 
      return RegExp(item).test(arr); 
    }

因为在使用1,2种方法的时候,console.log(new Array()); 不是"[ ]",是“[contains:function(..){...}]”
至于为什么,留个疑问,我想想!