【经典源码收藏】基于jQuery的项目常见函数封装集合
本文实例汇总了基于jQuery的项目常见函数封装。分享给大家供大家参考,具体如下:
///<referencepath="jquery-1.8.0.min.js"/> /* *DIV或元素居中 *@return */ jQuery.fn.mCenterDiv=function(){ this.css("position","absolute"); this.css("border","1pxsolid#ccc"); this.css("top",($(window).height()-this.height())/2+$(window).scrollTop()+"px"); this.css("left",($(window).width()-this.width())/2+$(window).scrollLeft()+"px"); this.show(100); returnthis; }; /* *替换字符串中所有符合的字符 *@paramASource源字符串 *@paramAFindText待替换字符 *@paramARepText替换后字符 *@return */ jQuery.mReplaceAll=function(ASource,AFindText,ARepText){ varraRegExp=newRegExp(AFindText,"g"); returnASource.replace(raRegExp,ARepText); }; /* *判断object是否空,未定义或null *@paramobject *@return */ jQuery.mIsNull=function(obj){ if(obj==""||typeof(obj)=="undefined"||obj==null){ returntrue; } else{ returnfalse; } }; /* *获取URL参数 *@paramname参数 *@return */ jQuery.mGetUrlParam=function(name){ varreg=newRegExp("(^|&)"+name+"=([^&]*)(&|$)"); varr=window.location.search.substr(1).match(reg); if(r!=null)returnunescape(r[2]);returnnull; }; /* *乘法函数,用来得到精确的乘法结果 *@paramarg1参数1 *@paramarg2参数2 *@return */ jQuery.mAccMul=function(arg1,arg2){ varm=0,s1=arg1.toString(),s2=arg2.toString(); try{m+=s1.split(".")[1].length}catch(e){} try{m+=s2.split(".")[1].length}catch(e){} returnNumber(s1.replace(".",""))*Number(s2.replace(".",""))/Math.pow(10,m) } /* *获取随机数 *@paramx下限 *@paramy上限 *@return */ jQuery.mGetRandom=function(x,y){ returnparseInt(Math.random()*(y-x+1)+x); }; /* *将数值四舍五入(保留2位小数)后格式化成金额形式 *@paramnum数值(Number或者String) *@return金额格式的字符串,如'1,234,567.45' */ jQuery.mFormatCurrency=function(num){ num=num.toString().replace(/\$|\,/g,''); if(isNaN(num)) num="0"; sign=(num==(num=Math.abs(num))); num=Math.floor(num*100+0.50000000001); cents=num%100; num=Math.floor(num/100).toString(); if(cents<10) cents="0"+cents; for(vari=0;i<Math.floor((num.length-(1+i))/3);i++) num=num.substring(0,num.length-(4*i+3))+','+ num.substring(num.length-(4*i+3)); return(((sign)?'':'-')+num+'.'+cents); } /* *正则验证 *@params验证字符串 *@paramtype验证类型money,china,mobile等 *@return */ jQuery.mCheck=function(s,type){ varobjbool=false; varobjexp=""; switch(type){ case'money'://金额格式,格式定义为带小数的正数,小数点后最多三位 objexp="^[0-9]+[\.][0-9]{0,3}$"; break; case'numletter_'://英文字母和数字和下划线组成 objexp="^[0-9a-zA-Z\_]+$"; break; case'numletter'://英文字母和数字组成 objexp="^[0-9a-zA-Z]+$"; break; case'numletterchina'://汉字、字母、数字组成 objexp="^[0-9a-zA-Z\u4e00-\u9fa5]+$"; break; case'email'://邮件地址格式 objexp="^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"; break; case'tel'://固话格式 objexp=/^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/; break; case'mobile'://手机号码 objexp="^(13[0-9]|15[0-9]|18[0-9])([0-9]{8})$"; break; case'decimal'://浮点数 objexp="^[0-9]+([.][0-9]+)?$"; break; case'url'://网址 objexp="(http://|https://){0,1}[\w\/\.\?\&\=]+"; break; case'date'://日期YYYY-MM-DD格式 objexp=/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; break; case'int'://整数 objexp="^[0-9]*[1-9][0-9]*$"; break; case'int+'://正整数包含0 objexp="^\\d+$"; break; case'int-'://负整数包含0 objexp="^((-\\d+)|(0+))$"; break; case'china'://中文 objexp=/^[\u0391-\uFFE5]+$/; break; } varre=newRegExp(objexp); if(re.test(s)){ returntrue; } else{ returnfalse; } }; /* *获取控件的值 *@paramcontrolID控件ID *@paramcontroltype类型如textradio *@return */ jQuery.mGetValue=function(controlID,controltype){ varobjValue=""; switch(controltype){ case'text'://文本输入框 objValue=$.trim($("#"+controlID+"").attr("value"));//取值去左右空格 break; case'radio'://单选框 objValue=$("input[name='"+controlID+"']:checked").attr("value"); break; case'select'://下拉列表 objValue=$("#"+controlID+"").attr("value"); break; case'checkbox'://多选框 $("input[name='"+controlID+"']:checked").each(function(){ objValue+=$(this).val()+","; }); break; default: break; } returnobjValue; }; /* *设置控件的值 *@paramcontrolID控件ID *@paramcontroltype类型如textradio *@paramcontrolvalue绑定值 *@return */ jQuery.mSetValue=function(controlID,controltype,controlvalue){ switch(controltype){ case'text'://文本输入框 //$("#txtUserID").attr("value",'这是绑定内容');//填充内容 //$("input[name='radio1'][value='上海']").attr("checked",true);//单选组radio:设置value='上海'的项目为当前选中项 //$("#select1").attr("value",'葡萄牙');//下拉框select:设置value='中国'的项目为当前选中项 //$("input[name='checkbox1'][value='黑色'],[value='蓝色']").attr("checked",true);//多选框:设置多个值为当前选中项 $("#"+controlID+"").attr("value",controlvalue);//填充内容 break; case'radio'://单选框 $("input[name='"+controlID+"'][value='"+controlvalue+"']").attr("checked",true); break; case'select'://下拉列表 $("#"+controlID+"").attr("value",controlvalue); break; case'checkbox'://多选框 $("input[name='"+controlID+"'][value='"+controlvalue+"'],[value='"+controlvalue+"']").attr("checked",true);//多选框:设置多个值为当前选中项 break; default: break; } }; /* *兼容IE火狐等浏览器的自动跳转 *@paramurl跳转网址 *@return */ jQuery.mAutoNav=function(url){ if($.browser.msie){ varreferLink=document.createElement('a'); referLink.href=url; document.body.appendChild(referLink); referLink.click(); }else{ location.href=url; } }; /* *Table表格奇偶行设置颜色及移动鼠标行变色 *@paramtable表格ID *@return */ jQuery.mTableHover=function(table){ $("#"+table).each(function(){ varo=$(this); //设置偶数行和奇数行颜色 o.find("tr:even").css("background-color","#EFF3FB"); o.find("tr:odd").css("background-color","#FFFFFF"); //鼠标移动隔行变色hover用法关键 o.find("tr:not(:first)").hover(function(){ $(this).attr("bColor",$(this).css("background-color")).css("background-color","#E0E0E0"); },function(){ $(this).css("background-color",$(this).attr("bColor")); }); }); }; /* *gridview隔行换色鼠标滑过变色多选 *c#获取选择值Request.Form.Get("chkItem") *@paramobjgridviewID *@return */ jQuery.mGridview=function(objgridview){ varheadcolor={background:'#E0ECFF',color:'#333'}; varnormalcolor={background:'#f7f6f3'}; varaltercolor={background:'#EDF1F8'}; varhovercolor={background:'#89A5D1'}; varselectcolor={background:'#ACBFDF'}; varnullcolor={}; //getobjid vargridviewId="#"+objgridview; //even $(gridviewId+">tbodytr:even").css(normalcolor); //first $(gridviewId+">tbodytr:first").css(nullcolor).css(headcolor); //odd $(gridviewId+">tbodytr:odd").css(altercolor); //hover $(gridviewId+">tbodytr").click(function(){ varcb=$(this).find("input:checkbox"); varchf=typeof(cb.attr("checked"))=="undefined"?true:false; cb.attr("checked",chf); varexpr1=gridviewId+'>tbody>tr>td>input:checkbox:checked'; varexpr2=gridviewId+'>tbody>tr>td>input:checkbox'; varselectAll=$(expr1).length==$(expr2).length; $('#chkAll').attr('checked',selectAll); }).hover(function(){ $(this).css(hovercolor); },function(){ $(gridviewId+">tbodytr:even").css(normalcolor); $(gridviewId+">tbodytr:first").css(nullcolor).css(headcolor); $(gridviewId+">tbodytr:odd").css(altercolor); }); //allcheck $("#chkAll").click(function(){ $(gridviewId+'>tbody>tr>td>input:checkbox:visible').attr('checked',this.checked); }); //checkstatus $(gridviewId+'>tbody>tr>td>input:checkbox').click(function(){ varcb=$(this); varchf=typeof(cb.attr("checked"))=="undefined"?true:false; cb.attr("checked",chf); varexpr1=gridviewId+'>tbody>tr>td>input:checkbox:checked'; varexpr2=gridviewId+'>tbody>tr>td>input:checkbox'; varselectAll=$(expr1).length==$(expr2).length; $('#chkAll').attr('checked',selectAll); }); }; /* *屏幕居中显示处理进度 *@paraminfo显示文字 *@paramtype方式0遮罩1不遮罩 *@paramtypepic图片0:load1:ok2:error *@return */ jQuery.mMaskLoad=function(info,type,typepic){ varpic=""; switch(typepic){ case0://loading pic="./Images/loading.gif"; break; case1://ok pic="./Images/right.png"; break; case2://error pic="./Images/error.png"; break; default://其他任何值时 pic="./Images/loading.gif"; break; } if(type==0){ $("<divclass=\"datagrid-mask\"></div>").css( { display:"block", width:"100%", position:"absolute", left:"0", top:"0", opacity:"0.3", height:"100%", filter:"alpha(opacity=30)", background:"#ccc" }).appendTo("body"); }; $("<divclass=\"datagrid-mask-msg\"></div>").css( { position:"absolute", top:"50%", padding:"12px5px10px30px", width:"auto", height:"16px", border:"1pxsolid#D1D1D1", background:"#ffffffurl('"+pic+"')no-repeatscroll5pxcenter", display:"block", left:($(document.body).outerWidth(true)-190)/2, top:($(window).height()-45)/2 }).html(info).appendTo("body"); }; /* *屏幕居中隐藏处理进度 *@return */ jQuery.mMaskLoadClose=function(){ $(".datagrid-mask").remove(); $(".datagrid-mask-msg").remove(); }; /* *控件后创建SPAN作为TIP提示 *@paramo用this *@paramtip提示文字 *@paramtypepic图片0:load1:ok2:error *@return */ jQuery.mTip=function(o,tip,typepic){ varpic=""; switch(typepic){ case0://loading pic="./Images/loading.gif"; break; case1://ok pic="./Images/right.png"; break; case2://error pic="./Images/error.png"; break; default://其他任何值时 pic="./Images/loading.gif"; break; } vareTip=document.createElement("span"); varobjid=$(o).attr("id")+"_tipDiv"; varvalue=$(o).val(); //绝对路径 varx=$(o).offset().top; vary=$(o).offset().left; varw=$(o).width(); varh=$(o).height(); eTip.setAttribute("id",objid); try{ document.body.appendChild(eTip); }catch(e){} $("#"+objid).hide(); $("#"+objid).css({ top:x, left:y+w+10, height:h, position:"absolute" }); $("#"+objid).html("<imgsrc=\""+pic+"\"style=\"vertical-align:bottom;margin-right:5px;\">"+tip); $("#"+objid).show(); }; /** *ajaxpost提交 *@paramurl *@paramparam *@paramdatat为html,json,text *@paramcallback回调函数functioncallBack(data) *@return */ jQuery.mJqAjax=function(url,param,datat,callback){ $.ajax({ type:"post", url:url, data:param, dataType:datat, success:callback, error:function(){} }); };
///<referencepath="jquery-1.8.3.min.js"/> /*********************************************************************/ /***************************Jquery扩展****************************/ /*********************************************************************/ jQuery.mIsNull=function(obj){ if(obj==""||typeof(obj)=="undefined"||obj==null){ returntrue; } else{ returnfalse; } }; jQuery.mCheckNull=function(id,tipid,nullmess,ctype){ varstr=$.mGetValue(id,ctype); vartid=($.mIsNull(tipid))?id:tipid; varobj=($.mIsNull(tipid))?$.mTip:$.mTipCustom; if($.mIsNull(str)){ obj("#"+tid,nullmess,2); } else{ obj("#"+tid,"",1); } }; jQuery.mCheckNullAndReg=function(id,tipid,nullmess,regmess,ctype,rtype){ varstr=$.mGetValue(id,ctype); vartid=($.mIsNull(tipid))?id:tipid; varobj=($.mIsNull(tipid))?$.mTip:$.mTipCustom; if($.mIsNull(str)){ obj("#"+tid,nullmess,2); } else{ if($.mCheck(str,rtype)){ obj("#"+tid,"",1); }else{ obj("#"+tid,regmess,2); } } }; jQuery.mCheck=function(s,type){ varobjbool=false; varobjexp=""; switch(type){ case'money'://金额格式,格式定义为带小数的正数,小数点后最多三位 objexp="^[0-9]+[\.][0-9]{0,3}$"; break; case'numletter_'://英文字母和数字和下划线组成 objexp="^[0-9a-zA-Z\_]+$"; break; case'numletter'://英文字母和数字组成 objexp="^[0-9a-zA-Z]+$"; break; case'numletterchina'://汉字、字母、数字组成 objexp="^[0-9a-zA-Z\u4e00-\u9fa5]+$"; break; case'email'://邮件地址格式 objexp="^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$"; break; case'tel'://固话格式 objexp=/^((\d2,3)|(\d{3}\-))?(0\d2,3|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/; break; case'mobile'://手机号码 objexp="^(13[0-9]|15[0-9]|18[0-9])([0-9]{8})$"; break; case'decimal'://浮点数 objexp="^[0-9]+([.][0-9]+)?$"; break; case'url'://网址 objexp="(http://|https://){0,1}[\w\/\.\?\&\=]+"; break; case'date'://日期YYYY-MM-DD格式 objexp=/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; break; case'int'://整数 objexp="^[0-9]*[1-9][0-9]*$"; break; case'int+'://正整数包含0 objexp="^\\d+$"; break; case'int-'://负整数包含0 objexp="^((-\\d+)|(0+))$"; break; case'china'://中文 objexp=/^[\u0391-\uFFE5]+$/; break; } varre=newRegExp(objexp); if(re.test(s)){ returntrue; } else{ returnfalse; } }; jQuery.mTip=function(o,tip,typepic){ varpic=""; switch(typepic){ case0://loading pic="/images/publicNew/loading.gif"; break; case1://ok pic="/images/publicNew/right.png"; break; case2://error pic="/images/publicNew/error.png"; break; default://其他任何值时 pic="/images/publicNew/onLoad.gif"; break; } vareTip=document.createElement("span"); varobjid=$(o).attr("id")+"_tipDiv"; varvalue=$(o).val(); //绝对路径 varx=$(o).offset().top; vary=$(o).offset().left; varw=$(o).width(); varh=$(o).height(); eTip.setAttribute("id",objid); try{ document.body.appendChild(eTip); }catch(e){} $("#"+objid).hide(); $("#"+objid).css({ top:x, left:y+w+10, height:h, position:"absolute" }); $("#"+objid).html("<imgsrc=\""+pic+"\"style=\"vertical-align:bottom;margin-right:5px;\">"+tip); $("#"+objid).show(); }; jQuery.mTipCustom=function(o,tip,typepic){ varpic=""; switch(typepic){ case0://loading pic="/images/publicNew/loading.gif"; break; case1://ok pic="/images/publicNew/right.png"; break; case2://error pic="/images/publicNew/error.png"; break; default://其他任何值时 pic="/images/publicNew/onLoad.gif"; break; } $("#"+o).html("<imgsrc=\""+pic+"\"style=\"vertical-align:bottom;margin-right:5px;\">"+tip); $("#"+o).show(); }; jQuery.mGetValue=function(controlID,controltype){ varobjValue=""; switch(controltype){ case'text'://文本输入框 objValue=$.trim($("#"+controlID+"").attr("value"));//取值去左右空格 break; case'radio'://单选框 objValue=$("input[name='"+controlID+"']:checked").attr("value"); break; case'select'://下拉列表 objValue=$("#"+controlID+"").attr("value"); break; case'checkbox'://多选框 $("input[name='"+controlID+"']:checked").each(function(){ objValue+=$(this).val()+","; }); break; default: break; } returnobjValue; }; /** *ajaxpost提交 *@paramurl *@paramparam *@paramdatat为html,json,text *@paramcallback回调函数functioncallBack(data) *@return */ jQuery.mJqAjax=function(url,param,datat,callback){ $.ajax({ type:"post", url:url, data:param, dataType:datat, success:callback, error:function(){} }); };
更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jquery中Ajax用法总结》、《jQuery表格(table)操作技巧汇总》、《jQuery拖拽特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》、《jquery选择器用法总结》及《jQuery常用插件及用法总结》
希望本文所述对大家jQuery程序设计有所帮助。