這段時間用到的javascript工具庫

工作中,自己邊用邊寫的
  1 /*
  2 *YYJ.js 主要提供後臺應用方法
  3 *目前有Ajax、addLoadEvent、deleteAll、getByClass、$C(=getByClass)、$、yyjtable、setCss、getCss、iaArray等方法。最後面還提供瞭一個
  4 *可實例化的方法YYJ.tick用來計算腳本運行時間
  5 *版本0.1    –tianyi    yyj
  6 */
  7 var YYJ=function(){
  8     var UniqueInstance;
  9     function constrotor(){
 10         return {
 11             //ajax方法
 12             Ajax:function(method,url,data,success,fail){
 13                 var isget=method.toLowerCase()=="get";
 14                 var xmlhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");
 15                 xmlhttp.open(method,url,true);
 16                 if(!isget)xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 17                 xmlhttp.onreadystatechange=function(){
 18                         if(xmlhttp.readyState==4){
 19                             if(xmlhttp.status==200){
 20                                 if(success)success(xmlhttp);
 21                             }else{
 22                                 if(fail)fail(xmlhttp);
 23                             }
 24                         }
 25                 };
 26                 xmlhttp.send(isget?null:data);
 27             },//Ajax
 28             addLoadEvent:function(func) {
 29                 var oldonload = window.onload;
 30                 if (typeof window.onload != 'function') {
 31                     window.onload = func;
 32                 } else {
 33                     window.onload = function() {
 34                       if (oldonload) {
 35                         oldonload();
 36                       }
 37                       func();
 38                     }
 39                 }
 40             },//addLoadEvent
 41             deleteAll:function(checkallbtn,checksomebtn,submitbtn){
 42                 var checkall=YYJ.$(checkallbtn);
 43                 var checksome=YYJ.$(checksomebtn);
 44                 var submit1=YYJ.$(submitbtn);
 45                 var checkboxs=(function(){
 46                     var arr=[];
 47                     var check=document.getElementsByTagName("input");
 48                     for(i=0;i<check.length;i++){
 49                         if(check[i].getAttribute("type")!="checkbox")
 50                             continue;
 51                         arr.push(check[i]);
 52                     }
 53                     return arr;
 54                 })();
 55                 checkall.onclick=function(){
 56                     checkall.clicked=true;
 57                     for(var i=0;i<checkboxs.length;i++){
 58                         if(!checkboxs[i].checked){
 59                             checkall.clicked=false;
 60                             break;
 61                         }
 62                     }
 63                     if(!checkall.clicked){
 64                         for(var i=0;i<checkboxs.length;i++){
 65                             checkboxs[i].checked=true;
 66                         }
 67                     }else{
 68                         for(var i=0;i<checkboxs.length;i++){
 69                             checkboxs[i].checked=false;
 70                         }
 71                     }
 72                 }
 73                 checksome.onclick=function(){
 74                     for(var x in checkboxs){
 75                         checkboxs[x].checked=!checkboxs[x].checked;
 76                     }
 77                 }
 78                 submit1.onclick=function(){
 79                     var haschecked=false;
 80                     var beSureDel=false;
 81                     for(var i=0;i<checkboxs.length;i++){
 82                         if(checkboxs[i].checked){
 83                             haschecked=true;
 84                             break;
 85                         }
 86                     }
 87                     haschecked?function(){
 88                         beSureDel=confirm("確定要刪除選中項嗎?");
 89                     }():function(){
 90                         alert("沒有選中項!");
 91                         beSureDel=false;
 92                     }();
 93                     return beSureDel;
 94                 }
 95             },//deleteall
 96             getByClass:function(classname,parent,nodename){
 97                 var s=(parent||document).getElementsByTagName(nodename||"*");
 98                 return function(){
 99                     var a=[];
100                     for(var i=0,j=s.length;i<j;i++){
101                         if(!s[i].className) continue;
102                         var name=" "+s[i].className+" ";
103                         if(name.indexOf(" "+classname+" ")!=-1){
104                             a.push(s[i]);
105                         }
106                     }
107                     return a;
108                 }();
109             },
110             $C:function(classname,parent,nodename){
111                 return YYJ.getByClass(classname,parent,nodename);
112             },//getByClass
113             $:function(str){
114                 return document.getElementById(str);
115             },//getById
116             yyjtable:function(tableId){
117                 var tbl=YYJ.$(tableId);
118                 var trs=tbl.getElementsByTagName("tr");
119                 for(var i=1;i<trs.length;i++){
120                     if(i%2!=0){
121                         trs[i].style.backgroundColor="#FFFFF0";
122                     }else{
123                         trs[i].style.backgroundColor="white";
124                     }
125                     trs[i].onmouseover=function(){
126                         this.col1=this.style.backgroundColor;
127                         this.style.backgroundColor="#FFFACD";
128                     }
129                     trs[i].onmouseout=function(){
130                         this.style.backgroundColor=this.col1;
131                     }
132                 }
133             },//yyjtable
134             /*使用方法www.aiwalls.com
135             YYJ.setCss([YYJ.$("table1")],{
136                 color:"red",
137                 backgroundColor:"silver"
138             });*/
139             setCss:function(eles,opt){
140                 if(!eles||!opt)return;
141                 if(!eles.length){
142                     throw new Error("setCss的第一個參數要求為數組!");
143                 }
144                 for(var i=0;j=eles[i];i++){
145                     try{
146                         for(var x in opt){
147                             j.style[x]=opt[x];
148                         }
149                     }catch(ex){}
150                 }
151             },//setCss
152             /*使用方法
153             var css=YYJ.getCss(YYJ.$("table1"),["backgroundColor"]);
154             alert(css["backgroundColor"]);*/
155             getCss:function(ele,opt){
156                 if(!this.isArray(opt)){
157                     throw new Error("getCss的第二個參數要求為string數組!");
158                 }
159                 var css={};
160                 for(var i=0,j=opt.length;i<j;i++){
161                     try{
162                         css[opt[i]]=ele.style[opt[i]];
163                     }catch(ex){}
164                 }
165                 return css;
166                
167             },//getCss
168             isArray:function(opt){
169                 return Object.prototype.toString.call(opt)=="[object Array]"
170             }
171    
172         };
173     }
174     function getUniqueInstance(){
175         if(UniqueInstance){
176             return UniqueInstance;
177         }
178         UniqueInstance=constrotor();
179         return UniqueInstance;
180     }
181     return getUniqueInstance();
182 }();
183 //腳本執行時間
184 /*使用方法
185 var ti=new YYJ.ticks();
186 ti.begin();
187 代碼段
188 ti.end();
189 alert(ti.tick);*/
190 YYJ.ticks=function(){
191     var starttick,stoptick;
192     return function(){
193         this.begin=function(){
194             starttick=new Date();
195         }
196         this.end=function(){
197             stoptick=new Date();
198             this.tick=stoptick-starttick;
199         }
200     }
201 }();

 

摘自  天意人間

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *