!function(util){
window.Utils = util();
}(
function(){
//document_event_attributes
var DEA = "doc-attr";
var key = function(dom){ return true; };
document.addEventListener("click",function(e){
var dom = e.target;
//判断是否进行运行
if( !key(dom) ) { return };
//对dom进行taggle调用
var _dom = dom;
var dea = null;
for( var i=0;i<3;i++ ){
dea = _dom.getAttribute(DEA);
if( dea ){
dea = dea.split(" ");
for( var i in dea )
util.elementEventAttributes[dea[i]](_dom);
break;
}
_dom = util.parent(_dom);
} }) //工具对象
var util = {
//对document进行的属性操作指令
//直接通过标签进行事件识别
elementEventAttributes : {}
              //版本号
              version : '1.0'
}; util.$ = function(querySelect){
if( typeof $ !== undefined || typeof jQuery !== undefined ){
return Array.prototype.slice.apply(jQuery(querySelect));
}else if( document.querySelectorAll ){
return document.querySelectorAll(querySelect);
}else {
//扩展ie查询
// return document.querySelectorAll(querySelect);
return [];
}
} //绑定事件
util.addEvent = function(element,name,call){
element.addEventListener(name,call);
} //查询是否存在class
util.hasClass = function(dom,className){
var name = dom.className;
var nameA = name.replace(/\s{2,}/g," ").split(" ");
if( nameA.indexOf("className") ){ }
} //获取父级
util.parent = function(dom){
return dom.parentElement;
} //显示
util.show = function(element){
if( util.SplitFunction() ) return
element.oldDisplay = element.style.display;
element.style.display = "block";
} //隐藏
util.hide = function(element){
if( util.SplitFunction() ) return;
element.style.display = element.oldDisplay || "none";
} //隐藏
util.taggle = function(element){
if( util.SplitFunction() ) return;
if( util.isElementVisible(element) ){
util.hide(element);
}else{
util.show(element);
}
} //打开全屏方法
util.openFullscreen = function(element) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullScreen();
}
} //退出全屏方法
util.exitFullScreen = function() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.msExitFullscreen) {
document.msExiFullscreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
}
} //将函数的参数如果是数组传入的话 进行拆分多次执行
util.SplitFunction = function(name){
//获取函数名
var name = name || arguments.callee.caller;
//获取函数参数
var argu = arguments.callee.caller.arguments;
if( argu.length !== 1 ) return;
argu = argu[0];
//如果参数为数组 切只有一个的话
if( util.isArray(argu) ){
for( var i in argu ){
if( util.isArray(argu[i]) ) continue;
name(argu[i]);
}
return true;
}else{
return false;
}
} util.download = function(filename, text){
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
element = null;
} util.getTime = function(i){
var t = new Date();
return t.getFullYear()+"_"+t.getMonth()+"_"+t.getDay();
} util.isArray = function(obj){
return typeof obj === "object" && obj.length !== undefined && obj.push !== undefined;
} util.isElementVisible = function(obj){
return !(obj.style.display === 'none');
} //属性函数 显示按钮
util.elementEventAttributes.showBtn = function(dom){
var opt_queryselect = dom.getAttribute("showBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
var doms = util.show(util.$(opt_queryselect));
} //属性函数 显示按钮
util.elementEventAttributes.hideBtn = function(dom){
var opt_queryselect = dom.getAttribute("hideBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
var doms = util.hide(util.$(opt_queryselect));
} //属性函数 显示按钮
util.elementEventAttributes.taggleBtn = function(dom){
var opt_queryselect = dom.getAttribute("taggleBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
var doms = util.taggle(util.$(opt_queryselect));
} //属性函数 checkbox 总开关
util.elementEventAttributes.checkboxBtn = function(dom){
setTimeout(function(){
var opt_queryselect = dom.getAttribute("checkboxBtn-queryselect") || dom.getAttribute("e-queryselect");
if( !opt_queryselect || opt_queryselect === "" || !dom ) return;
for( var i in opt_queryselect ){
opt_queryselect[i].checked = dom.checkbox;
opt_queryselect[i].change
}
})
} //属性函数 开启全屏
util.elementEventAttributes.onFullScreen = function(dom){
util.openFullscreen(dom);
} //属性函数 关闭全屏
util.elementEventAttributes.offFullScreen = function(dom){
util.exitFullScreen(dom);
} //属性函数 taggle全屏
util.elementEventAttributes.taggleFullScreen = function(dom){
var opt_queryselect = dom.getAttribute("taggleFullScreen-queryselect") || dom.getAttribute("e-queryselect");
var _dom = util.$(opt_queryselect)[0];
if( !document.fullscreenElement ){
//如果不存在当前全屏的对象
return util.openFullscreen(_dom);
}else if( document.fullscreenElement === _dom ){
//如果全屏对象等于传入函数
return util.exitFullScreen();
}else {
//即存在的全屏对象不等于传入的操作dom
util.exitFullscreen()
return util.exitFullScreen(_dom)
}
} //属性函数 taggle文案
util.elementEventAttributes.taggleAttr = function(dom){
var opt_queryselect = dom.getAttribute("taggleAttr-queryselect") || dom.getAttribute("e-queryselect");
var opt_replace = dom.getAttribute("taggleAttr-replace");
var opt_replacetype = dom.getAttribute("taggleAttr-replacetype") || "innerText";
var _dom = util.$(opt_queryselect)[0];
var old = _dom[opt_replacetype];
_dom[opt_replacetype] = opt_replace;
dom.setAttribute("taggleAttr-replace",old);
} return util; }
)  

API

  addEvent(element,name,call) //绑定函数

  hasClass(dom,classname,newClass)     //判断是否存在class 可以选择替换

  parent(element)    //获取父级

  show(element)      //显示

  hide(element)       //隐藏

  taggle( element )         //交替显示或隐藏

  openFullscreen( element )  //打开全屏方法
  exitFullScreen()      //退出全屏方法

  SplitFunction( )        //将函数的参数如果是数组传入的话  进行拆分多次执行

  download( filename , text )   //下载   文件名   文件内容

  getTime(index)      //获取时间 格式为  year_month_day

  isArray(obj)     //判断类型

  isElementVisible(element) //判断是否是隐藏的

doc-attr 函数合集

  showBtn //显示按钮

    showBtn-queryselect  //显示对象的css选择器表达式  通用queryselect

  hideBtn

    hideBtn-queryselect  //显示对象的css选择器表达式  通用queryselect

  taggleBtn

    taggleBtn-queryselect  //显示对象的css选择器表达式  通用queryselect

  checkboxBtn  //属性函数 checkbox 总开关

    checkboxBtn-queryselect //选择器

  onFullScreen //开启全屏

    onFullScreen-queryselect

  offFullScreen //关闭全屏

  taggleFullScreen

    taggleFullScreen-queryselect

  taggleAttr

    taggleAttr-queryselect

    taggleAttr-replace   //替换的值

    taggleAttr-replacetype  //替换的属性  默认为innerHTML

  

常用的js代码合集的更多相关文章

  1. 前端常用的js 插件合集

  2. 【转载】GitHub 标星 1.2w+,超全 Python 常用代码合集,值得收藏!

    本文转自逆袭的二胖,作者二胖 今天给大家介绍一个由一个国外小哥用好几年时间维护的 Python 代码合集.简单来说就是,这个程序员小哥在几年前开始保存自己写过的 Python 代码,同时把一些自己比较 ...

  3. git常用代码合集

    git常用代码合集 1. Git init:初始化一个仓库 2. Git add 文件名称:添加文件到Git暂存区 3. Git commit -m “message”:将Git暂存区的代码提交到Gi ...

  4. 计算机视觉与模式识别代码合集第二版two

    Topic Name Reference code Image Segmentation Segmentation by Minimum Code Length AY Yang, J. Wright, ...

  5. 计算机视觉与模式识别代码合集第二版three

    计算机视觉与模式识别代码合集第二版three     Topic Name Reference code Optical Flow Horn and Schunck's Optical Flow   ...

  6. [ZZ] UIUC同学Jia-Bin Huang收集的计算机视觉代码合集

    UIUC同学Jia-Bin Huang收集的计算机视觉代码合集 http://blog.sina.com.cn/s/blog_4a1853330100zwgm.htmlv UIUC的Jia-Bin H ...

  7. WooCommerce代码合集整理

    本文整理了一些WooCommerce代码合集,方便查阅和使用,更是为了理清思路,提高自己.以下WooCommerce简称WC,代码放在主题的functions.php中即可. 修改首页和分类页面每页产 ...

  8. 127个常用的JS代码片段,每段代码花30秒就能看懂(上)

    127个常用的JS代码片段,每段代码花30秒就能看懂(上) JavaScript 是目前最流行的编程语言之一,正如大多数人所说:“如果你想学一门编程语言,请学JavaScript.” FreeCode ...

  9. 常用的js代码片段

    1.单选框/手风琴 <script> $(document).ready(function(){ $("dd").on("click",functi ...

随机推荐

  1. 全志A33开发板的安卓控制LED-2-JNI基础

    虽然您可以完全使用Java编写应用程序,但有些情况下Java本身并不能满足您的应用程序的需求.当应用程序不能完全用Java编写时,程序员使用JNI编写Java本机方法来处理这些情况. 以下示例说明何时 ...

  2. 【转载】【原创】华硕F8TR笔记本更换主板及喇叭教程

    转载地址:http://blog.sina.com.cn/s/blog_6241aaed0102w4e6.html [原创]华硕F8TR笔记本更换主板及喇叭教程     华硕AUSU F8TR笔记本 ...

  3. 西门子S7-300 PLC视频教程(百度网盘)

    西门子S7-300 PLC视频教程(百度网盘) 百度网盘链接地址: 链接:https://pan.baidu.com/s/1MqC0DJbv-ndCzk9XGU2AYQ 提取码:u5eq 祝大家天天开 ...

  4. CentOS7中KVM虚拟机内存、CPU调整

    CentOS7中KVM虚拟机内存.CPU调整 1. 调小虚拟机内存 调小虚拟机内存可以动态实现,不用关机 1.1 查看当前内存大小 [root@kvm01 ~]# virsh dominfo vm1- ...

  5. elasticsearch -- Logstash实现mysql同步数据到elasticsearch

    配置 安装插件由于这里是从mysql同步数据到elasticsearch,所以需要安装jdbc的入插件和elasticsearch的出插件:logstash-input-jdbc.logstash-o ...

  6. 关于C6678的网口问题

    1.C6678 Keystone1架构的GbE switch subsystem如图所示: 2.从图中可以看到MAC层与物理层PHY芯片的连接接口是由SGMII+SerDES构成,SGMII是以太网M ...

  7. C语言volatile关键字的用法

    volatile关键字的意义在于让被关键字修饰的变量每次使用时都重新去主内存里读取变量,而不是从高速缓存去读取. int a = 1; 普通变量定义之后,若要使用它,都会 先把它的值从主内存拷贝到高速 ...

  8. 黄聪:微信h5支付demo微信H5支付demo非微信浏览器支付demo微信wap支付

    一.首先先确定H5支付权限已经申请! 二.开发流程 1.用户在商户侧完成下单,使用微信支付进行支付 2.由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB ...

  9. 【转】使用Eclipse,将鼠标放在相应方法或字段等元素上时,无法显示提示

    使用Eclipse编写java代码时,将鼠标放在相应方法或字段等元素上时,会有对应的说明或提示. 不过,常出现下面的问题: Note:An exception occurred while getti ...

  10. js无间隙向上滚动

    一.优点:div可以load:缺点:滚动的时候有点娘,磨磨唧唧,不够干脆爽快 html <div id="my_msg" class="my-msg bg-whit ...