前端开发必备工具功能总结
1,时间格式化和其他方法
一个库文件,推荐使用moment.js
2,模板,循环,地图和其他使用的方法
underscode.js的方法
三.将表单序列转换为JSON
复制代码代码如下所示:
美元。fn.serializejson =函数(){
无功serializeobj = { };
var array = this.serializearray();
var str = this.serialize();
$(数组)。每个(函数(){)
如果(serializeobj {这个名字}){
如果(美元。ISArray(serializeobj {这个名字})){
serializeobj {这个名字}。推(的价值);
{人}
serializeobj {姓名} = { serializeobj。{这名称},这价值};
}
{人}
serializeobj {姓名} = this.value;
}
});
返回serializeobj;
};
4。使用字符串截取填充
复制代码代码如下所示:
string.prototype.strcut =函数(数){
VaR的长度= this.length;
var tmp = this.substr(0号);
如果(this.length >号码){
TMP =hellip;;
}
返回TMP;
}
5,时间格式,XXXX天,XXX分钟,日期
复制代码代码如下所示:
date.prototype.format =功能(FMT,电流){
如果(当前){
无功电流this.gettime差异=();
如果(差异< 5×60×1000){
返回刚刚;
}
如果(差异< 60×60×1000){
返回(math.floor(diff /((60 * 1000)))在+分钟;
}
如果(差异<24×60×60×1000){
返回(math.floor(diff /((60 * 60 * 1000)))在+小时;
}
如果(差异<30×24×60×60×1000){
返回(math.floor(diff /((24 * 60 * 60 * 1000)))+天;
}
如果(差异<12×30×24×60×60×1000){
返回(math.floor(diff /((30 * 24 * 60 * 60 * 1000)))+前月;
}
如果(差12×30×24×60×60×1000){
返回(math.floor(diff /((12 * 30 * 24 * 60 * 60 * 1000)))+年;
}
}
var { { { {
+:(这个返回完整年份), / /月
M +:this.getmonth(+ 1) / /月
D:(这个getdate), / /天
H:(这个,获得当前的小时) / /小时。
M + :(这个,获得当前的分钟), / /分
+:(这个,获得当前的秒), / /
Q+:Math.floor((,获得当前的月份)(+ 3)/ 3), / /季度
S:(这个。getmilliseconds) / /小姐
};
如果( / /(Y +)。测试(FMT))= fmt.replace FMT(regexp。1美元,(this.getfullyear()+)。Substr(4—9。1美元。长度));
对于(k在O中k)
如果(new RegExp((钾))。测试(FMT)fmt.replace(FMT)= regexp。1美元(1美元= = 1.length regexp。)(O { }(K):(00 + K O { })(Substr(。。长度+ O K)))){ };
返回格式化;
};
6。解析URL
复制代码代码如下所示:
功能ParseURL(){
var arr = location.search.split(){ 1 }。分裂();
var参数= { };
对于(var i = 0,L = arr.length;i < L;i++){
var参数= ARR {我}分(T);
参数{参数{ 0 } } = { 1 }参数;
}
返回参数;
}
7。得到的参数
复制代码代码如下所示:
功能getparameterbyname(name){
名称=替换( / { {} /,{(更换) / / } { }, } );
VaR的正则表达式=新的正则表达式({ } +姓名+=({ ^ # } *)),
结果= regex.exec(位置。搜索);
返回结果为空:decodeuricomponent(结果{ 1 }。取代( / + / G ));
}
8。功能节流,允许频繁事件触发更稀疏来提高性能,如及时搜索功能。使用方法是FN作为事件响应函数,延迟是间隔时间,并调用节流(FN,延迟)来向事件返回一个新函数。
复制代码代码如下所示:
功能节流阀(FN,延迟){
var定时器= null;
返回函数(){
var上下文=,
参数args =;
ClearTimeout(定时器);
定时器= setTimeout(){()函数(
Fn.apply(上下文,args);
},延迟);
};
}
9。防止表单多次提交,如在9中返回一个新函数
复制代码代码如下所示:
*防止多点击功能
*
*当FN完成时调用回调
*函数FN(事件,结束){
*(typeof =函数)(结束); / /操作
* }
* /功能norepeatetap(FN){
var obj美元;
返回函数(事件){
obj = $(this)美元;
如果($ obj.data(负荷)= = = true){
返回;
}
obj.data美元(负荷
fn.call(这个事件,函数结束()){
obj.data美元(负荷
返回;
});
}
}
第九个使用实例
复制代码代码如下所示:
绑定事件
$(容器),(点击','取消'按钮,norepeatetap(取消));
事件响应函数
函数取消(事件,结束){
Event.preventDefault();
异步请求的模拟
setTimeout(){()函数(
(结束); / /需要完成的功能,手动注入完成功能,自动将负载类,用来调整风格,完成后自动删除
},5000)
}