您的位置:首页 > Web前端 > JQuery

jquery扩展方法(extend) 写法

2013-06-18 00:38 387 查看
前因:一直有积累一个util.js ,在不同时间段的质量成迭代状,变量名随着心情的变化不断变得不可读.决定在新项目中整理一下.如果当插件来写好像也没那么多功能,所以就extend吧
extend优点有很多,用java的思想就是有个包名
比如这样
$.myfunction.validate.isInt(str);
$.myfunction.validate.isFloat(str);
jquery extend的统一格式
(function($){
$.extend({
……
});

})(jQuery);


 

我这里整理了一点项目中用到的,摘抄成这样

(function($) {
$.extend({
//验证工具
validate : {
// 整数
isInt: function(str){
var reg = /^(-|\+)?\d+$/;
return reg.test(str);
},
// 小数
isFloat: function(str){
if (isInt(str))
return true;
var reg = /^(-|\+)?\d+\.\d*$/;
return reg.test(str);
},
// 中文
isCn : function(str){
var re1 = /[\u4e00-\u9fa5]/;
return re1.test(str);
},
// 是否为空
isEmpty: function(str){
if (str != null && str != "") {
return false;
}
return true;
}
},
//时间工具
timeUtil : {
/**
* 日期 转换为 Unix时间戳
*
* @param <int>  year 年
* @param <int>   month 月
* @param <int>   day 日
* @param <int>   hour 时
* @param <int>  minute 分
* @param <int>  second 秒
* @return <int> unix时间戳(秒)
*/
DateToUnix : function(year, month, day, hour, minute, second) {
var oDate = new Date(Date.UTC(parseInt(year), parseInt(month),
parseInt(day), parseInt(hour), parseInt(minute),
parseInt(second)));
return (oDate.getTime() / 1000);
},
/**
* 时间戳转换日期
*
* @param <int>  unixTime 待时间戳(秒)
* @param <bool> isFull 返回完整时间(Y-m-d 或者 Y-m-d H:i:s)
* @param <int> timeZone 时区
*/
UnixToDate : function(unixTime, isFull, timeZone) {
if (typeof (timeZone) == 'number') {
unixTime = parseInt(unixTime) + parseInt(timeZone) * 60
* 60;
}
var time = new Date(unixTime * 1000);
var ymdhis = "";
ymdhis += time.getUTCFullYear() + "-";
ymdhis += time.getUTCMonth() + "-";
ymdhis += time.getUTCDate();
if (isFull === true) {
ymdhis += " " + time.getUTCHours() + ":";
ymdhis += time.getUTCMinutes() + ":";
ymdhis += time.getUTCSeconds();
}
return ymdhis;
},
//东8区
UnixToDefaultDate:function(unixTime){
return $.timeUtil.UnixToDate(unixTime/1000,true,8);
}
},
// cookie工具
cookieUtil : {
set : function(name, value) {
var Days = 365; // 此 cookie 将被保存 365 天
var exp = new Date(); // new Date("December 31, 9998");
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + "=" + escape(value) + ";expires="
+ exp.toGMTString();
},
get : function(name) {
var arr = document.cookie.match(new RegExp("(^| )" + name
+ "=([^;]*)(;|$)"));
if (arr != null)
return unescape(arr[2]);
return null;
},
del : function(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = $.cookieUtil.get(name);
if (cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
}
});
})(jQuery);


这里只是部分摘抄,其实可以分的更细,验证的 写个extend , 日期的,加载的,请求的 完全都可以用这种方式来实现,好处就是可以模块化,然后压缩个包就可以丢给大家用了,不用担心名称被占用什么的.所以,抽丝剥茧,整理下你的js吧
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: