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 prototype原型操作笔记
Dec 07 Javascript
IE6不能修改NAME问题的解决方法
Sep 03 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
jquery DIV撑大让滚动条滚到最底部代码
Jun 06 Javascript
JQuery处理json与ajax返回JSON实例代码
Jan 03 Javascript
Node.js 应用跑得更快 10 个技巧
Apr 03 Javascript
BootStrap Fileinput初始化时的一些参数
Dec 30 Javascript
简单实现jQuery级联菜单
Jan 09 Javascript
Web 开发中Ajax的Session 超时处理方法
Jan 19 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
Apr 26 jQuery
原生JS实现弹幕效果的简单操作指南
Nov 10 Javascript
关于javascript中的promise的用法和注意事项(推荐)
Jan 15 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修改指定文件后缀的方法
2014/09/11 PHP
PHP不使用递归的无限级分类简单实例
2016/11/05 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
javascript 多级checkbox选择效果
2009/08/20 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
使用jQuery时Form表单元素ID和name命名大忌
2014/03/06 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue 表单之通过v-model绑定单选按钮radio
2019/05/13 Javascript
jQuery实现鼠标拖动图片功能
2021/03/04 jQuery
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
python 内置函数filter
2017/06/01 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
2020/01/15 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
Ajax和javascript的区别
2013/07/20 面试题
自荐信格式范文
2013/10/07 职场文书
航空大学应届生求职信
2013/11/10 职场文书
毕业生的自我评价
2013/12/30 职场文书
酒店个人求职信范文
2014/01/25 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
会计专业自我评价
2014/02/12 职场文书
求职面试个人自我评价
2014/02/28 职场文书
金融事务专业求职信
2014/04/25 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
2015年药店店长工作总结
2015/04/29 职场文书
户外亲子活动总结
2015/05/08 职场文书
MySQL七大JOIN的具体使用
2022/02/28 MySQL