方法:借鉴底线库的工具框架,包含一些常用方法,在兼容AMD模式的同时,兼顾了CMD (链接地址)
# 下载依赖
$ npm install
# 开发环境(开启本地热服务)
$ npm run start
# 生产环境(输出压缩后代码)
$ npm run product
博客日期2016-10-18
序号 | 方法名称 | 使用方法 |
1 | kit.Model/kit.Controller/kit.View | mvc架构,使用详情见使用demo |
2 | kit.tabToggle(elements, _class, fn) | elements为绑定事件的对象,节点属性需要设置为tab-data, _class为点击后添加的类名, fn为回调使用demo |
3 | kit.method(obj) | 为对象上挂载的函数体排序生成数组名,除去变量值,返回一个新数组 |
4 | kit.extend | 通过浅复制,继承当前对象的方法,内部方法,多个对象属性继承用kit.mixin |
5 | kit.CLIENT_USERID | 客户端用户id,在浏览器中不存在,这个属性应该是由客户端设置 |
6 | kit.CLIENT_VERSION | 客户端版本号,在浏览器中不存在,这个属性应该是由客户端设置 |
7 | kit.isArray(totle) | 判断是否为数组 |
8 | kit.isBoolean(totle) | 判断是否为布尔值 |
9 | kit.isFunction(totle) | 判断是否为函数 |
10 | kit.isString(totle) | 判断是否为字符串 |
11 | kit.isDate(totle) | 判断是否为日期 |
12 | kit.isNull(totle) | 判断是否为null(typeof null === "object") |
13 | kit.isRegExp(totle) | 判断是否为正则 |
14 | kit.isNumber(totle) | 判断是否为数字 |
15 | kit.isUndefined(totle) | 判断是否是undefined |
16 | kit.isError(totle) | 判断是否是Error |
17 | kit.some(object/array, fn) | 迭代方法,如果有一个回调函数返回false,则返回fanse |
18 | kit.forEach(object/array, fn)/kit.each(object/array, fn) | 负责用来遍历对象/数组属性,按照ES5标准,与jq参数位置不同 |
19 | kit.trim(string) | 去除字符串两边的空格,如果有第二个参数,则把所有空格删除 |
20 | kit.locaSearch(key[, string]) | 例子:"?getdate=2016-12-08&type=2"。第一个参数为需要取得的键值, 第二个为需要解析成对象的地址串, 如果不传为location.search |
21 | kit.cookie(key[, string]) | 例子:"aaa=123;bbb=456;ccc=678"。第一个参数为需要取得的键值 (如果传入的是"" 或者null,则会打出整个键值对对象), 第二个为需要解析成对象的地址串,如果不传为document.cookie,已经把末尾的分号“;”去除 |
22 | kit.clone | 第一个参数为克隆对象,如果第二个参数是true则使用递归深度复制,使用demo |
23 | kit.query(selector) | 封装了document.querySelector |
24 | kit.querys(selector) | 封装了docuemnt.querySelectorAll |
25 | kit.ta(value[, type]) | 埋点快捷方式, 传入对象{"ibyf130_3242": ".class1","iby2345_fre4": ".class2"} 进行dom绑定, 如果传入数组,则是载入页面调用。如果有第二个参数,则可以自行设定触发方式 使用demo |
26 | kit.clientDown(name, url[, type]) | 快速调用客户端下载弹窗1:下载文件取名,2:文件下载地址(相对路径),3:文件类型,需要加(.)。 type可选,如果url能够取到地址串,则不会被type覆盖, 如果地址串后面的url没有解析出类型,则会被type覆盖。例子: kit.clientDown("abc", "/thsft/Istrategy/abc.pdf", ".xls")。 注:适用于动态文件的下载,此类文件如果调用客户端方法会导致意外多出现一个白屏 |
27 | kit.splitSpace(string) | 按照空格分割字符串 |
28 | kit.once(fn) | 执行一次函数包装器,返回一个新函数体 |
29 | kit.mixin( [deep ], target, object1 [, objectN ] ) | 拷贝属性的方法,第一个参数如果填布尔值则是深度复制,后面跟需要拷贝的对象, 方法属性都会挂载到第一个对象target上面 |
30 | kit.sort(["asc"/"desc", ]arr) | 第一个参数如果是"asc"则是正序从小到大(默认), 如果是"desc",则倒叙, 如果只传一个数组参数则进行正序排序,arr为需要排序的数组 |
31 | kit.route(callback[, arr]) | 使用方法为传入一个函数参数,路由发生变化时就触发回调 kit.route(fucntion(hash){console.log(hash)})。 回调的第一个参数即hash值。注:hash值会改变浏览器历史记录,如果不传arr则所有hash值都有效,都会触发回调,如果传了arr则只会根据范围内的hash变化而触发回调 |
32 | kit.addScript(url[, callback]) | 动态加载脚本,兼顾了IE 6-8浏览器,第一个参数是地址,第二个参数可选, 为脚本加载完毕后触发的回调 |
33 | kit.bind(total, fn) | 返回一个绑定this后的函数体,仿原生bind |
34 | kit.error(fn) | window.onerror触发之后的执行函数 |
35 | kit.timeHandle(inputTime, value[, symbol]) | inputTime目标时间,value是改变天数,负整数是向前,symbol为分割符号。用于设定未来,或者以前的时间,并格式化输出。没传分割符号默认是“-” |
36 | kit.tempRender(template, total, data[, type]) | total可以是dom对象,也可以是jQuery对象或zepto对象。kit.tempRender("234234234{{=a}}", document.body,{a:"aaa"}),type是添加方式,默认是html方法全部替换,如需append,type就可以是"append" |
37 | kit.chartRender(option, total) | 渲染图表 echarts2版本插件 |
38 | kit.isEmpty(total) | 判断对象或者数组是否为空,由于空对象在布尔判断时始终是true值,所以需要使用这个方法判断里面是否没有键值对,如果是空则返回true,如果是以上两个类型以外的类型,则一律返回true |
39 | kit.ajaxInit(total) | total为对象组成,total{before:fn1,complete:fn2} fn1与fn2都必须要为函数 |
40 | kit.triggerSuccess(receive) | ajax请求成功后(ajax请求返回格式标准) 传入一个对象 obj = {response: resp,// 数据源 haveData: fn1,// 存在数据,存在数据要分两种情况// 部分无数据与全部有数据 noData:fn2// 不存在数据} 在内部按照事先定好的请求数据格式进行函数的调用 |
41 | kit.timeFinal(total, fn) | 把该运行代码放到队列底部执行,total为this指向,fn为回调函数 |
42 | kit.Promise() | 延迟执行的函数队列,使用方法 |
43 | kit.binarySearch(arr, total) | 使用二分法查找数组中的指定的项,查找到返回一个对象如:Object {index: 5, total: 7},如果该项不存在,则返回字符串"no this item" |
44 | kit.countDown(time, fn) | 倒计时函数,time为计时数值,fn为每次变化后的回调,返回一个重置计时的函数体var reset = kit.countDown(time, fn) |
45 | kit.toggle(object) | 在同一个元素上触发事件的轮回方式,传入对象ibject使用dome |
46 | kit.propertyNumber(total[, flag]) | 判断对象属性数量,total为要计算属性数量的对象,flag为true则除去原型链上的属性 |
47 | kit.ajaxConstant({beforeSend:fn1, complete:fn2}) | ajax重复步骤的静态化,可以重复调用使用demo |
48 | kit.ta_m(type, para) | 移动端埋点使用demo |
49 | kit.encryptName(name) | 客户端匿名机制函数,返回 name_as***sj形式的字符串 |
50 | kit.initFontSize([size]) | 调整客户端网页字体大小,不填则初始化为1,可填0,1,2,3调整字号 |
51 | kit.signState([flag]) | 返回用户名var userName = kit.signState();。kit.signState(true)// 验证是否登录,登录则不执行代码,还没登录则弹登录框; |
52 | kit.template(str, value[, symbol]) | 需要传入一个数组,str是模板字符串, value是渲染数据的【数组】,symbol是无数据展示的内容使用demo |
53 | kit.mobileType() | 判断手机平台iphone(ipad)或gphone |
54 | kit.serizeArrForm(arr) | 序列化jq生成的表单数组,通过$("#Form").serializeArray()方法生成的数组 |
55 | kit.triggerSuccessEvun(receive) | ajax请求成功后(ajax请求返回格式标准) 传入一个对象 obj = {response: resp,// 数据源 haveData: fn1,// 存在数据,存在数据要分两种情况// 部分无数据与全部有数据 noData:fn2// 不存在数据} 在内部按照事先定好的请求数据格式进行函数的调用 |
56 | kit.getSingle(fn) | test = kit.getSingle(function(){alert(1); return true});不断触发test只触发一次,注意点是需要return一个true回去 |
57 | kit.throttle(callback, time) | 函数节流(代理模式)需要一定间隔才能再次出发函数 x = kit.throttle(function(a) {console.log(a);}, 2000) |
58 | kit.setViewport(width) | 改变移动端的屏幕缩放比,使不同分辨率的屏幕有相同的显示效果 |
59 | kit.objToSearch(obj) | 将对象转化成?a=123&b=567这样的形式 |
60 | kit.underToMustache() | 启用Mustache.js类型模板语法,使用{{= }} 这样的语法 |
61 | kit._ | 继承底线库underscore方法 |
62 | kit.$ | 继承jQuery v3 方法 |