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 相关文章推荐
动态调用CSS文件的JS代码
Jul 29 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
May 19 Javascript
jquery选择器原理介绍($()使用方法)
Mar 25 Javascript
jQuery中outerWidth()方法用法实例
Jan 19 Javascript
javascript的BOM汇总
Jul 16 Javascript
jQuery Easyui学习之datagrid 动态添加、移除editor
Jan 27 Javascript
深入php面向对象、模式与实践
Feb 16 Javascript
使用Web Uploader实现多文件上传
Jun 08 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
Mar 29 Javascript
vue 使用ref 让父组件调用子组件的方法
Feb 08 Javascript
用p5.js制作烟花特效的示例代码
Mar 21 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 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+FLASH实现上传文件进度条相关文件 下载
2007/07/21 PHP
PHP仿盗链代码
2012/06/03 PHP
PHP获取毫秒级时间戳的方法
2015/04/15 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
2015/12/25 PHP
利用php操作memcache缓存的基础方法示例
2017/08/02 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
EasyUI中datagrid在ie下reload失败解决方案
2015/03/09 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
AngularJS 模块详解及简单实例
2016/07/28 Javascript
Bootstrap面板使用方法
2017/01/16 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
JavaScript对象属性操作实例解析
2020/02/04 Javascript
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
python http基本验证方法
2018/12/26 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
将pytorch转成longtensor的简单方法
2020/02/18 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
非常漂亮的CSS3百叶窗焦点图动画
2016/02/24 HTML / CSS
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
英国天然保健品网站:Simply Supplements
2017/03/22 全球购物
家长对孩子的感言
2014/03/10 职场文书
五分钟演讲稿
2014/04/30 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
小学教师工作总结2015
2015/04/07 职场文书
详解MySQL的半同步
2021/04/22 MySQL