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:sugggestion.js
Sep 02 Javascript
js中判断用户输入的值是否为空的简单实例
Dec 23 Javascript
Firefox下无法正常显示年份的解决方法
Sep 04 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
JavaScript获取各大浏览器信息图示
Nov 20 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
May 17 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
Jul 12 Javascript
深入对Vue.js $watch方法的理解
Mar 20 Javascript
vue-resource 拦截器(interceptor)的使用详解
Jul 04 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
Aug 30 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
Dec 28 Javascript
js生成word中图片处理方法
Jan 06 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取进制余数函数代码
2012/01/19 PHP
PHP中运用jQuery的Ajax跨域调用实现代码
2012/02/21 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
php异步:在php中使用fsockopen curl实现类似异步处理的功能方法
2016/12/10 PHP
php多文件打包下载的实例代码
2017/07/12 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
2021/02/26 PHP
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
Javascript中Promise的四种常用方法总结
2017/07/14 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Python之ReportLab绘制条形码和二维码的实例
2018/01/15 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python实现简易数码时钟
2021/02/19 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
基于python模拟bfs和dfs代码实例
2020/11/19 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
详解HTML5布局和HTML5标签
2020/10/26 HTML / CSS
婚宴邀请函
2015/01/30 职场文书
php中配置文件保存修改操作 如config.php文件的读取修改等操作
2021/05/12 PHP
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
JavaScript中的宏任务和微任务详情
2021/11/27 Javascript
DSP接收机前端设想
2022/04/05 无线电
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS