Skip to content

客户端工具函数集合库,针对工作中在客户端环境,需要用到的常用需求进行了封装,需要undescore,jQuery的配合只兼容chrome以及IE8以上浏览器,省去多次提取,或者编写函数导致的重复劳动。如提取cookie,以及提取链接参数的字符串,兼容了requireJS与seaJS的打包

Notifications You must be signed in to change notification settings

Kelichao/klcs-origin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

方法:借鉴底线库的工具框架,包含一些常用方法,在兼容AMD模式的同时,兼顾了CMD (链接地址)

# 下载依赖
$ npm install


# 开发环境(开启本地热服务)
$ npm run start


# 生产环境(输出压缩后代码)
$ npm run product

博客日期2016-10-18

kit.js

序号 方法名称 使用方法
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 方法

About

客户端工具函数集合库,针对工作中在客户端环境,需要用到的常用需求进行了封装,需要undescore,jQuery的配合只兼容chrome以及IE8以上浏览器,省去多次提取,或者编写函数导致的重复劳动。如提取cookie,以及提取链接参数的字符串,兼容了requireJS与seaJS的打包

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published