javascript工具库代码


Posted in Javascript onMarch 29, 2012
/*
 *YYJ.js 主要提供后台应用方法
 *目前有Ajax、addLoadEvent、deleteAll、getByClass、$C(=getByClass)、$、yyjtable、setCss、getCss、iaArray等方法。最后面还提供了一个
 *可实例化的方法YYJ.tick用来计算脚本运行时间
 *版本0.1    --tianyi    yyj
 */
 var YYJ=function(){
     var UniqueInstance;
     function constrotor(){
         return {
             //ajax方法
             Ajax:function(method,url,data,success,fail){
                 var isget=method.toLowerCase()=="get";
                 var xmlhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
                 xmlhttp.open(method,url,true);
                 if(!isget)xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                 xmlhttp.onreadystatechange=function(){
                         if(xmlhttp.readyState==4){
                             if(xmlhttp.status==200){
                                 if(success)success(xmlhttp);
                             }else{
                                 if(fail)fail(xmlhttp);
                             }
                         }
                 };
                 xmlhttp.send(isget?null:data);
             },//Ajax
             addLoadEvent:function(func) {
                 var oldonload = window.onload;
                 if (typeof window.onload != 'function') {
                     window.onload = func;
                 } else {
                     window.onload = function() {
                       if (oldonload) {
                         oldonload();
                       }
                       func();
                     }
                 }
             },//addLoadEvent
             deleteAll:function(checkallbtn,checksomebtn,submitbtn){
                 var checkall=YYJ.$(checkallbtn);
                 var checksome=YYJ.$(checksomebtn);
                 var submit1=YYJ.$(submitbtn);
                 var checkboxs=(function(){
                     var arr=[];
                     var check=document.getElementsByTagName("input");
                     for(i=0;i<check.length;i++){
                         if(check[i].getAttribute("type")!="checkbox")
                             continue;
                         arr.push(check[i]);
                     }
                     return arr;
                 })();
                 checkall.onclick=function(){
                     checkall.clicked=true;
                     for(var i=0;i<checkboxs.length;i++){
                         if(!checkboxs[i].checked){
                             checkall.clicked=false;
                             break;
                         }
                     }
                     if(!checkall.clicked){
                         for(var i=0;i<checkboxs.length;i++){
                             checkboxs[i].checked=true;
                         }
                     }else{
                         for(var i=0;i<checkboxs.length;i++){
                             checkboxs[i].checked=false;
                         }
                     }
                 }
                 checksome.onclick=function(){
                     for(var x in checkboxs){
                         checkboxs[x].checked=!checkboxs[x].checked;
                     }
                 }
                 submit1.onclick=function(){
                     var haschecked=false;
                     var beSureDel=false;
                     for(var i=0;i<checkboxs.length;i++){
                         if(checkboxs[i].checked){
                             haschecked=true;
                             break;
                         }
                     }
                     haschecked?function(){
                         beSureDel=confirm("确定要删除选中项吗?");
                     }():function(){
                         alert("没有选中项!");
                         beSureDel=false;
                     }();
                     return beSureDel;
                 }
             },//deleteall
             getByClass:function(classname,parent,nodename){
                 var s=(parent||document).getElementsByTagName(nodename||"*");
                 return function(){
                     var a=[];
                     for(var i=0,j=s.length;i<j;i++){
                         if(!s[i].className) continue;
                         var name=" "+s[i].className+" ";
                         if(name.indexOf(" "+classname+" ")!=-1){
                             a.push(s[i]);
                         }
                     }
                     return a;
                 }();
             },
             $C:function(classname,parent,nodename){
                 return YYJ.getByClass(classname,parent,nodename);
             },//getByClass
             $:function(str){
                 return document.getElementById(str);
             },//getById
             yyjtable:function(tableId){
                 var tbl=YYJ.$(tableId);
                 var trs=tbl.getElementsByTagName("tr");
                 for(var i=1;i<trs.length;i++){
                     if(i%2!=0){
                         trs[i].style.backgroundColor="#FFFFF0";
                     }else{
                         trs[i].style.backgroundColor="white";
                     }
                     trs[i].onmouseover=function(){
                         this.col1=this.style.backgroundColor;
                         this.style.backgroundColor="#FFFACD";
                     }
                     trs[i].onmouseout=function(){
                         this.style.backgroundColor=this.col1;
                     }
                 }
             },//yyjtable
             /*使用方法
             YYJ.setCss([YYJ.$("table1")],{
                 color:"red",
                 backgroundColor:"silver"
             });*/
             setCss:function(eles,opt){
                 if(!eles||!opt)return;
                 if(!eles.length){
                     throw new Error("setCss的第一个参数要求为数组!");
                 }
                 for(var i=0;j=eles[i];i++){
                     try{
                         for(var x in opt){
                             j.style[x]=opt[x];
                         }
                     }catch(ex){}
                 }
             },//setCss
             /*使用方法
             var css=YYJ.getCss(YYJ.$("table1"),["backgroundColor"]);
             alert(css["backgroundColor"]);*/
             getCss:function(ele,opt){
                 if(!this.isArray(opt)){
                     throw new Error("getCss的第二个参数要求为string数组!");
                 }
                 var css={};
                 for(var i=0,j=opt.length;i<j;i++){
                     try{
                         css[opt[i]]=ele.style[opt[i]];
                     }catch(ex){}
                 }
                 return css;             },//getCss
             isArray:function(opt){
                 return Object.prototype.toString.call(opt)=="[object Array]"
             }
         };
     }
     function getUniqueInstance(){
         if(UniqueInstance){
             return UniqueInstance;
         }
         UniqueInstance=constrotor();
         return UniqueInstance;
     }
     return getUniqueInstance();
 }();
 //脚本执行时间
 /*使用方法
 var ti=new YYJ.ticks();
 ti.begin();
 代码段
 ti.end();
 alert(ti.tick);*/
 YYJ.ticks=function(){
     var starttick,stoptick;
     return function(){
         this.begin=function(){
             starttick=new Date();
         }
         this.end=function(){
             stoptick=new Date();
             this.tick=stoptick-starttick;
         }
     }
 }();
Javascript 相关文章推荐
JavaScript插入动态样式实现代码
Feb 22 Javascript
jQuery实现的Div窗口震动特效
Jun 09 Javascript
jQuery与Ajax以及序列化
Feb 01 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
js动态添加的DIV中的onclick事件简单实例
Jul 25 Javascript
AngularJS实现单独作用域内的数据操作
Sep 05 Javascript
JS正则子匹配实例分析
Dec 22 Javascript
jQuery Ajax前后端使用JSON进行交互示例
Mar 17 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
Angular4开发解决跨域问题详解
Aug 28 Javascript
vue 中的keep-alive实例代码
Jul 20 Javascript
JavaScript ES6的函数拓展
Jan 18 Javascript
Web开发之JavaScript
Mar 29 #Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
Mar 29 #Javascript
javascript对talbe进行动态添加、删除、验证实现代码
Mar 29 #Javascript
jQuery 下拉列表 二级联动插件分享
Mar 29 #Javascript
50款非常棒的 jQuery 插件分享
Mar 29 #Javascript
基于jquery完美拖拽,可返回拖动轨迹
Mar 29 #Javascript
Javascript面向对象扩展库代码分享
Mar 27 #Javascript
You might like
PHP程序中使用adodb连接不同数据库的代码实例
2015/12/19 PHP
两种php实现图片上传的方法
2016/01/22 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
PHP递归删除多维数组中的某个值
2017/04/17 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
jquery 列表双向选择器之改进版
2013/08/09 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
jquery通过select列表选择框对表格数据进行过滤示例
2014/05/07 Javascript
Javascript设计模式理论与编程实战之简单工厂模式
2015/11/03 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
基于AngularJS实现表单验证功能
2017/07/28 Javascript
vue基于element的区间选择组件
2018/09/07 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
vue 之 css module的使用方法
2018/12/04 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
python映射列表实例分析
2015/01/26 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
PyQt5实现暗黑风格的计时器
2019/07/29 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
香港通票:Hong Kong Pass
2019/02/26 全球购物
美国领先的宠物用品和宠物食品零售商:Petco
2020/10/28 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
2019年工作总结范文
2019/05/21 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
人民币符号
2022/02/17 杂记
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS