一些常见的jquery封装函数

  1 /// <reference path="jquery-1.8.0.min.js" />  
  2 /* 
  3 * DIV或元素居中 
  4 * @return 
  5 */  
  6 jQuery.fn.mCenterDiv = function () {  
  7     this.css("position", "absolute");  
  8     this.css("border", "1px solid #ccc");  
  9     this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");  
 10     this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");  
 11     this.show(100);  
 12     return this;  
 13 };  
 14   
 15 /* 
 16 * 替换字符串中所有符合的字符 
 17 * @param ASource 源字符串 
 18 * @param AFindText 待替换字符 
 19 * @param ARepText 替换后字符 
 20 * @return 
 21 */  
 22 jQuery.mReplaceAll = function (ASource,AFindText, ARepText) {  
 23     var raRegExp = new RegExp(AFindText, "g");  
 24     return ASource.replace(raRegExp, ARepText);  
 25 };  
 26   
 27 /* 
 28 * 判断object是否空,未定义或null 
 29 * @param object  
 30 * @return 
 31 */  
 32 jQuery.mIsNull = function (obj) {  
 33     if (obj == "" || typeof(obj) == "undefined" || obj == null) {  
 34         return true;  
 35     }  
 36     else {  
 37         return false;  
 38     }  
 39 };  
 40   
 41 /* 
 42 * 获取URL参数 
 43 * @param name 参数 
 44 * @return 
 45 */  
 46 jQuery.mGetUrlParam = function (name) {  
 47     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");  
 48     var r = window.location.search.substr(1).match(reg);  
 49     if (r != null) return unescape(r[2]); return null;  
 50 };  
 51   
 52 /* 
 53 * 乘法函数,用来得到精确的乘法结果 
 54 * @param arg1 参数1 
 55 * @param arg2 参数2 
 56 * @return 
 57 */  
 58 jQuery.mAccMul = function(arg1, arg2) {  
 59     var m = 0, s1 = arg1.toString(), s2 = arg2.toString();  
 60     try { m += s1.split(".")[1].length } catch (e) { }  
 61     try { m += s2.split(".")[1].length } catch (e) { }  
 62     return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)  
 63 }  
 64   
 65 /* 
 66 * 获取随机数 
 67 * @param x 下限 
 68 * @param y 上限 
 69 * @return 
 70 */  
 71 jQuery.mGetRandom = function (x, y) {  
 72    return parseInt(Math.random() * (y - x + 1) + x);  
 73   
 74 };  
 75   
 76 /* 
 77 * 将数值四舍五入(保留2位小数)后格式化成金额形式 
 78 * @param num 数值(Number或者String) 
 79 * @return 金额格式的字符串,如'1,234,567.45' 
 80 */  
 81 jQuery.mFormatCurrency = function(num) {  
 82     num = num.toString().replace(/\$|\,/g, '');  
 83     if (isNaN(num))  
 84         num = "0";  
 85     sign = (num == (num = Math.abs(num)));  
 86     num = Math.floor(num * 100 + 0.50000000001);  
 87     cents = num % 100;  
 88     num = Math.floor(num / 100).toString();  
 89     if (cents < 10)  
 90         cents = "0" + cents;  
 91     for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)  
 92         num = num.substring(0, num.length - (4 * i + 3)) + ',' +  
 93     num.substring(num.length - (4 * i + 3));  
 94     return (((sign) ? '' : '-') + num + '.' + cents);  
 95 }  
 96   
 97 /* 
 98 * 正则验证 
 99 * @param s 验证字符串 
100 * @param type 验证类型 money,china,mobile等  
101 * @return 
102 */  
103 jQuery.mCheck = function (s, type) {  
104     var objbool = false;  
105     var objexp = "";  
106     switch (type) {  
107         case 'money': //金额格式,格式定义为带小数的正数,小数点后最多三位  
108             objexp = "^[0-9]+[\.][0-9]{0,3}$";  
109             break;  
110         case 'numletter_': //英文字母和数字和下划线组成     
111             objexp = "^[0-9a-zA-Z\_]+$";  
112             break;  
113         case 'numletter': //英文字母和数字组成  
114             objexp = "^[0-9a-zA-Z]+$";  
115             break;  
116         case 'numletterchina': //汉字、字母、数字组成   
117             objexp = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";  
118             break;  
119         case 'email': //邮件地址格式   
120             objexp = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";  
121             break;    
122         case 'tel': //固话格式   
123             objexp = /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;  
124             break;  
125         case 'mobile': //手机号码   
126             objexp = "^(13[0-9]|15[0-9]|18[0-9])([0-9]{8})$";  
127             break;  
128         case 'decimal': //浮点数   
129             objexp = "^[0-9]+([.][0-9]+)?$";  
130             break;  
131         case 'url': //网址   
132             objexp = "(http://|https://){0,1}[\w\/\.\?\&\=]+";  
133             break;  
134         case 'date': //日期 YYYY-MM-DD格式  
135             objexp = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;  
136             break;  
137         case 'int': //整数   
138             objexp = "^[0-9]*[1-9][0-9]*$";  
139             break;  
140         case 'int+': //正整数包含0  
141             objexp = "^\\d+$";  
142             break;  
143         case 'int-': //负整数包含0  
144             objexp = "^((-\\d+)|(0+))$";  
145             break;  
146         case 'china': //中文   
147             objexp = /^[\u0391-\uFFE5]+$/;  
148             break;  
149     }  
150     var re = new RegExp(objexp);  
151     if (re.test(s)) {  
152         return true;  
153     }  
154     else {  
155         return false;  
156     }  
157 };  
158   
159 /* 
160 * 获取控件的值 
161 * @param controlID 控件ID 
162 * @param controltype 类型 如text radio 
163 * @return 
164 */  
165 jQuery.mGetValue = function (controlID, controltype) {  
166     var objValue = "";  
167     switch (controltype) {  
168         case 'text': //文本输入框  
169             objValue = $.trim($("#" + controlID + "").attr("value")); //取值去左右空格  
170             break;  
171         case 'radio': //单选框  
172             objValue = $("input[name='" + controlID + "']:checked").attr("value");  
173             break;  
174         case 'select': //下拉列表  
175             objValue = $("#" + controlID + "").attr("value");  
176             break;  
177         case 'checkbox': //多选框  
178             $("input[name='" + controlID + "']:checked").each(function () {  
179                 objValue += $(this).val() + ",";  
180             });  
181             break;  
182         default:  
183             break;  
184     }  
185     return objValue;  
186 };  
187   
188 /* 
189 * 设置控件的值 
190 * @param controlID 控件ID 
191 * @param controltype 类型 如text radio 
192 * @param controlvalue 绑定值 
193 * @return 
194 */  
195 jQuery.mSetValue = function (controlID, controltype, controlvalue) {  
196     switch (controltype) {  
197         case 'text': //文本输入框    
198             //$("#txtUserID").attr("value", '这是绑定内容'); //填充内容    
199             //$("input[name='radio1'][value='上海']").attr("checked", true); //单选组radio:设置value='上海'的项目为当前选中项    
200             //$("#select1").attr("value", '葡萄牙'); //下拉框select:设置value='中国'的项目为当前选中项    
201             //$("input[name='checkbox1'][value='黑色'],[value='蓝色']").attr("checked", true); //多选框:设置多个值为当前选中项    
202             $("#" + controlID + "").attr("value", controlvalue); //填充内容    
203             break;  
204         case 'radio': //单选框    
205             $("input[name='" + controlID + "'][value='" + controlvalue + "']").attr("checked", true);  
206             break;  
207         case 'select': //下拉列表    
208             $("#" + controlID + "").attr("value", controlvalue);  
209             break;  
210         case 'checkbox': //多选框    
211             $("input[name='" + controlID + "'][value='" + controlvalue + "'],[value='" + controlvalue + "']").attr("checked", true); //多选框:设置多个值为当前选中项    
212             break;  
213         default:  
214             break;  
215     }  
216 };  
217   
218 /* 
219 * 兼容IE火狐等浏览器的自动跳转 
220 * @param url 跳转网址 
221 * @return 
222 */  
223 jQuery.mAutoNav = function (url) {  
224     if ($.browser.msie) {  
225         var referLink = document.createElement('a');  
226         referLink.href = url;  
227         document.body.appendChild(referLink);  
228         referLink.click();  
229     } else {  
230         location.href = url;  
231     }  
232 };  
233   
234 /* 
235 * Table表格奇偶行设置颜色及移动鼠标行变色 
236 * @param table 表格ID 
237 * @return 
238 */  
239 jQuery.mTableHover = function (table) {  
240     $("#" + table).each(function () {  
241         var o = $(this);  
242         //设置偶数行和奇数行颜色  
243         o.find("tr:even").css("background-color", "#EFF3FB");  
244         o.find("tr:odd").css("background-color", "#FFFFFF");  
245         //鼠标移动隔行变色hover用法关键  
246         o.find("tr:not(:first)").hover(function () {  
247             $(this).attr("bColor", $(this).css("background-color")).css("background-color", "#E0E0E0");  
248         }, function () {  
249             $(this).css("background-color", $(this).attr("bColor"));  
250         });  
251     });  
252 };  
253   
254 /* 
255 * gridview 隔行换色 鼠标滑过变色 多选 
256 * c#获取选择值 Request.Form.Get("chkItem") 
257 * @param objgridview ID 
258 * @return 
259 */  
260 jQuery.mGridview = function (objgridview) {  
261     var headcolor = { background: '#E0ECFF', color: '#333' };  
262     var normalcolor = { background: '#f7f6f3' };  
263     var altercolor = { background: '#EDF1F8' };  
264     var hovercolor = { background: '#89A5D1' };  
265     var selectcolor = { background: '#ACBFDF' };  
266     var nullcolor = {};  
267     //get obj id  
268     var gridviewId = "#" + objgridview;  
269     //even  
270     $(gridviewId + ">tbody tr:even").css(normalcolor);  
271     //first  
272     $(gridviewId + ">tbody tr:first").css(nullcolor).css(headcolor);  
273     //odd  
274     $(gridviewId + ">tbody tr:odd").css(altercolor);  
275     //hover  
276     $(gridviewId + ">tbody tr").click(function () {  
277         var cb = $(this).find("input:checkbox");  
278         var chf = typeof (cb.attr("checked")) == "undefined" ? true : false;  
279         cb.attr("checked", chf);  
280         var expr1 = gridviewId + ' >tbody >tr >td >input:checkbox:checked';  
281         var expr2 = gridviewId + ' >tbody >tr >td >input:checkbox';  
282         var selectAll = $(expr1).length == $(expr2).length;  
283         $('#chkAll').attr('checked', selectAll);  
284     }).hover(function () {  
285         $(this).css(hovercolor);  
286     }, function () {  
287         $(gridviewId + ">tbody tr:even").css(normalcolor);  
288         $(gridviewId + ">tbody tr:first").css(nullcolor).css(headcolor);  
289         $(gridviewId + ">tbody tr:odd").css(altercolor);  
290     });  
291   
292     //all check  
293     $("#chkAll").click(function () {  
294         $(gridviewId + '>tbody >tr >td >input:checkbox:visible').attr('checked', this.checked);  
295     });  
296     //check status  
297     $(gridviewId + ' >tbody >tr >td >input:checkbox').click(function () {  
298         var cb = $(this);  
299         var chf = typeof (cb.attr("checked")) == "undefined" ? true : false;  
300         cb.attr("checked", chf);  
301         var expr1 = gridviewId + ' >tbody >tr >td >input:checkbox:checked';  
302         var expr2 = gridviewId + ' >tbody >tr >td >input:checkbox';  
303         var selectAll = $(expr1).length == $(expr2).length;  
304         $('#chkAll').attr('checked', selectAll);  
305     });  
306 };  
307   
308 /* 
309 * 屏幕居中显示处理进度 
310 * @param info 显示文字 
311 * @param type 方式 0遮罩 1不遮罩 
312 * @param typepic 图片 0:load 1:ok 2:error 
313 * @return 
314 */  
315 jQuery.mMaskLoad = function (info, type, typepic) {  
316     var pic = "";  
317     switch (typepic) {  
318         case 0: // loading  
319             pic = "./Images/loading.gif";  
320             break;  
321         case 1: // ok  
322             pic = "./Images/right.png";  
323             break;  
324         case 2: // error  
325             pic = "./Images/error.png";  
326             break;  
327         default: //其他任何值时  
328             pic = "./Images/loading.gif";  
329             break;  
330     }  
331     if (type == 0) {  
332         $("<div class=\"datagrid-mask\"></div>").css(  
333         {  
334             display: "block",  
335             width: "100%",  
336             position: "absolute",  
337             left: "0",  
338             top: "0",  
339             opacity: "0.3",  
340             height: "100%",  
341             filter: "alpha(opacity=30)",  
342             background: "#ccc"  
343         }).appendTo("body");  
344     };  
345     $("<div class=\"datagrid-mask-msg\"></div>").css(  
346         {  
347             position: "absolute",  
348             top: "50%",  
349             padding: "12px 5px 10px 30px",  
350             width: "auto",  
351             height: "16px",  
352             border: "1px solid #D1D1D1",  
353             background: "#ffffff url('" + pic + "') no-repeat scroll 5px center",  
354             display: "block",  
355             left: ($(document.body).outerWidth(true) - 190) / 2,  
356             top: ($(window).height() - 45) / 2  
357         }).html(info).appendTo("body");  
358 };  
359   
360 /* 
361 * 屏幕居中隐藏处理进度 
362 * @return 
363 */  
364 jQuery.mMaskLoadClose = function () {  
365     $(".datagrid-mask").remove();  
366     $(".datagrid-mask-msg").remove();  
367 };  
368   
369 /* 
370 * 控件后创建SPAN作为TIP提示 
371 * @param o 用this 
372 * @param tip 提示文字 
373 * @param typepic 图片 0:load 1:ok 2:error 
374 * @return 
375 */  
376 jQuery.mTip = function (o, tip, typepic) {  
377     var pic = "";  
378     switch (typepic) {  
379         case 0: // loading  
380             pic = "./Images/loading.gif";  
381             break;  
382         case 1: // ok  
383             pic = "./Images/right.png";  
384             break;  
385         case 2: // error  
386             pic = "./Images/error.png";  
387             break;  
388         default: //其他任何值时  
389             pic = "./Images/loading.gif";  
390             break;  
391     }  
392     var eTip = document.createElement("span");  
393     var objid = $(o).attr("id") + "_tipDiv";  
394     var value = $(o).val();  
395     //绝对路径    
396     var x = $(o).offset().top;  
397     var y = $(o).offset().left;  
398     var w = $(o).width();  
399     var h = $(o).height();  
400     eTip.setAttribute("id", objid);  
401     try {  
402         document.body.appendChild(eTip);  
403     } catch (e) { }  
404     $("#" + objid).hide();  
405     $("#" + objid).css({  
406         top: x,  
407         left: y + w + 10,  
408         height: h,  
409         position: "absolute"  
410     });  
411     $("#" + objid).html("<img src=\"" + pic + "\" style=\"vertical-align:bottom;margin-right:5px;\">" + tip);  
412     $("#" + objid).show();  
413 };  
414   
415 /** 
416 * ajax post提交 
417 * @param url 
418 * @param param 
419 * @param datat 为html,json,text 
420 * @param callback 回调函数 function callBack(data) 
421 * @return 
422 */  
423 jQuery.mJqAjax = function (url, param, datat, callback) {  
424     $.ajax({  
425         type: "post",  
426         url: url,  
427         data: param,  
428         dataType: datat,  
429         success: callback,  
430         error: function () { }  
431     });  
432 };  
433     
434 
435 [javascript] view plain copy print?在CODE上查看代码片派生到我的代码片
436 /// <reference path="jquery-1.8.3.min.js" />  
437 /*********************************************************************/  
438 /***************************Jquery 扩展****************************/  
439 /*********************************************************************/  
440 jQuery.mIsNull = function (obj) {  
441     if (obj == "" || typeof (obj) == "undefined" || obj == null) {  
442         return true;  
443     }  
444     else {  
445         return false;  
446     }  
447 };  
448   
449 jQuery.mCheckNull = function (id, tipid, nullmess, ctype) {  
450     var str = $.mGetValue(id, ctype);  
451     var tid = ($.mIsNull(tipid)) ? id : tipid;  
452     var obj = ($.mIsNull(tipid)) ? $.mTip : $.mTipCustom;  
453     if ($.mIsNull(str)) {  
454         obj("#" + tid, nullmess, 2);  
455     }  
456     else {  
457         obj("#" + tid, "", 1);  
458     }  
459 };  
460   
461 jQuery.mCheckNullAndReg = function (id, tipid, nullmess, regmess, ctype, rtype) {  
462     var str = $.mGetValue(id, ctype);  
463     var tid = ($.mIsNull(tipid)) ? id : tipid;  
464     var obj = ($.mIsNull(tipid)) ? $.mTip : $.mTipCustom;  
465     if ($.mIsNull(str)) {  
466         obj("#" + tid, nullmess, 2);  
467     }  
468     else {  
469         if ($.mCheck(str, rtype)) {  
470             obj("#" + tid, "", 1);  
471         } else {  
472             obj("#" + tid, regmess, 2);  
473         }  
474     }  
475 };  
476   
477 jQuery.mCheck = function (s, type) {  
478     var objbool = false;  
479     var objexp = "";  
480     switch (type) {  
481         case 'money': //金额格式,格式定义为带小数的正数,小数点后最多三位    
482             objexp = "^[0-9]+[\.][0-9]{0,3}$";  
483             break;  
484         case 'numletter_': //英文字母和数字和下划线组成       
485             objexp = "^[0-9a-zA-Z\_]+$";  
486             break;  
487         case 'numletter': //英文字母和数字组成    
488             objexp = "^[0-9a-zA-Z]+$";  
489             break;  
490         case 'numletterchina': //汉字、字母、数字组成     
491             objexp = "^[0-9a-zA-Z\u4e00-\u9fa5]+$";  
492             break;  
493         case 'email': //邮件地址格式     
494             objexp = "^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$";  
495             break;  
496         case 'tel': //固话格式     
497             objexp = /^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/;  
498             break;  
499         case 'mobile': //手机号码     
500             objexp = "^(13[0-9]|15[0-9]|18[0-9])([0-9]{8})$";  
501             break;  
502         case 'decimal': //浮点数     
503             objexp = "^[0-9]+([.][0-9]+)?$";  
504             break;  
505         case 'url': //网址     
506             objexp = "(http://|https://){0,1}[\w\/\.\?\&\=]+";  
507             break;  
508         case 'date': //日期 YYYY-MM-DD格式    
509             objexp = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/;  
510             break;  
511         case 'int': //整数     
512             objexp = "^[0-9]*[1-9][0-9]*$";  
513             break;  
514         case 'int+': //正整数包含0    
515             objexp = "^\\d+$";  
516             break;  
517         case 'int-': //负整数包含0    
518             objexp = "^((-\\d+)|(0+))$";  
519             break;  
520         case 'china': //中文     
521             objexp = /^[\u0391-\uFFE5]+$/;  
522             break;  
523     }  
524     var re = new RegExp(objexp);  
525     if (re.test(s)) {  
526         return true;  
527     }  
528     else {  
529         return false;  
530     }  
531 };  
532   
533 jQuery.mTip = function (o, tip, typepic) {  
534     var pic = "";  
535     switch (typepic) {  
536         case 0: // loading    
537             pic = "/images/publicNew/loading.gif";  
538             break;  
539         case 1: // ok    
540             pic = "/images/publicNew/right.png";  
541             break;  
542         case 2: // error    
543             pic = "/images/publicNew/error.png";  
544             break;  
545         default: //其他任何值时    
546             pic = "/images/publicNew/onLoad.gif";  
547             break;  
548     }  
549     var eTip = document.createElement("span");  
550     var objid = $(o).attr("id") + "_tipDiv";  
551     var value = $(o).val();  
552     //绝对路径      
553     var x = $(o).offset().top;  
554     var y = $(o).offset().left;  
555     var w = $(o).width();  
556     var h = $(o).height();  
557     eTip.setAttribute("id", objid);  
558     try {  
559         document.body.appendChild(eTip);  
560     } catch (e) { }  
561     $("#" + objid).hide();  
562     $("#" + objid).css({  
563         top: x,  
564         left: y + w + 10,  
565         height: h,  
566         position: "absolute"  
567     });  
568     $("#" + objid).html("<img src=\"" + pic + "\" style=\"vertical-align:bottom;margin-right:5px;\">" + tip);  
569     $("#" + objid).show();  
570 };  
571   
572 jQuery.mTipCustom = function (o, tip, typepic) {  
573     var pic = "";  
574     switch (typepic) {  
575         case 0: // loading    
576             pic = "/images/publicNew/loading.gif";  
577             break;  
578         case 1: // ok    
579             pic = "/images/publicNew/right.png";  
580             break;  
581         case 2: // error    
582             pic = "/images/publicNew/error.png";  
583             break;  
584         default: //其他任何值时    
585             pic = "/images/publicNew/onLoad.gif";  
586             break;  
587     }  
588     $("#" + o).html("<img src=\"" + pic + "\" style=\"vertical-align:bottom;margin-right:5px;\">" + tip);  
589     $("#" + o).show();  
590 };  
591   
592 jQuery.mGetValue = function (controlID, controltype) {  
593     var objValue = "";  
594     switch (controltype) {  
595         case 'text': //文本输入框    
596             objValue = $.trim($("#" + controlID + "").attr("value")); //取值去左右空格    
597             break;  
598         case 'radio': //单选框    
599             objValue = $("input[name='" + controlID + "']:checked").attr("value");  
600             break;  
601         case 'select': //下拉列表    
602             objValue = $("#" + controlID + "").attr("value");  
603             break;  
604         case 'checkbox': //多选框    
605             $("input[name='" + controlID + "']:checked").each(function () {  
606                 objValue += $(this).val() + ",";  
607             });  
608             break;  
609         default:  
610             break;  
611     }  
612     return objValue;  
613 };  
614   
615 /**  
616 * ajax post提交  
617 * @param url  
618 * @param param  
619 * @param datat 为html,json,text  
620 * @param callback 回调函数 function callBack(data)  
621 * @return  
622 */  
623 jQuery.mJqAjax = function (url, param, datat, callback) {  
624     $.ajax({  
625         type: "post",  
626         url: url,  
627         data: param,  
628         dataType: datat,  
629         success: callback,  
630         error: function () { }  
631     });  
632 };    

 

posted @ 2016-12-23 23:24  北湮  阅读(624)  评论(0编辑  收藏  举报