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学习笔记9 prototype封装继承
Jan 11 Javascript
JavaScript的document对象和window对象详解
Dec 30 Javascript
Javascript的各种节点操作实例演示代码
Jun 27 Javascript
js函数的引用, 关于内存的开销
Sep 17 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
Jul 09 Javascript
node.js中的console.info方法使用说明
Dec 09 Javascript
基于javascript实现tab选项卡切换特效调试笔记
Mar 30 Javascript
vue.js之vue-cli脚手架的搭建详解
May 05 Javascript
js如何编写简单的ajax方法库
Aug 02 Javascript
Electron中实现大文件上传和断点续传功能
Oct 28 Javascript
countup.js实现数字动态叠加效果
Oct 17 Javascript
解决vuex刷新数据消失问题
Nov 12 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实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
laravel自定义分页效果
2017/07/23 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
JavaScript Event学习第六章 事件的访问
2010/02/07 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
利用types增强vscode中js代码提示功能详解
2017/07/07 Javascript
解决betterScroll在vue中存在图片时,出现拉不动的问题
2018/09/27 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
pygame游戏之旅 如何制作游戏障碍
2018/11/20 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
Django实现分页显示效果
2019/10/31 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
Python读取文件内容为字符串的方法(多种方法详解)
2020/03/04 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Python 数据分析之逐块读取文本的实现
2020/12/14 Python
检测用户浏览器是否支持CSS3的方法
2009/08/29 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
共产党员批评与自我批评
2014/10/15 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
python 调用js的四种方式
2021/04/11 Python
Go语言-为什么返回值为接口类型,却返回结构体
2021/04/24 Golang
python微信智能AI机器人实现多种支付方式
2022/04/12 Python