!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. [IOS][已越狱]配合网易云音乐,使用Bridge快速免iTunes导入音乐到“音乐”

    前置:已越狱IOS设备   工具表: Bridge{bigboss源,可以使用cydown以非官方服务器下载安装} 网易云音乐{Appstore} Filza{很多源都有}     网易云试听缓存路径 ...

  2. win10 安装 face_recognition

    环境:Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bit (AMD64)] on win ...

  3. [随笔][Java][修改pom仓库库为阿里云]

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  4. git 与 ftp 共同工作

    因git主要用于版本管理,代码同步方面,因临时调试等原因,需要使用ftp上传文件. 但因为git的账户为ubuntu,ftp是虚拟账户overlord 导致文件权限不同,出现的问题主要有: 1.ftp ...

  5. CRMEB提示:系统错误 lnterface SessionUpdateTimestampHandlerlnterface not found

    安装CRMEB系统时,公众号网页提示:系统错误 lnterface SessionUpdateTimestampHandlerlnterface not found 怎么办? 解决方法:PHP更换为7 ...

  6. log4j-over-slf4j和slf4j-log4j12冲突问题解决

    解决办法: 两个jar包会循环引用导致内存溢出.解决的办法就是将两个jar包其中一个的依赖移除掉

  7. RDMS三剑客的服务

    @echo off title %1 goto %1 echo Error... echo. goto bexit :orcl_stop rem 顺序:EM.LSN.SID rem echo stop ...

  8. laravel Cache store [] is not defined

    去这个网站学习一下也好  https://laravel-china.org/topics/2093/laravel-source-analysis-series-cache#0b2791 如果env ...

  9. 用c语言创建双向环形链表

    作为一个C开发人员,无论在求职笔试题中,还是在工程项目中,都会遇到用c语言创建双向环形链表.这个也是理解和使用c指针的一项基本功. #include<...>//头文件省略 typedef ...

  10. python 开发接口(一)

    一.首先导入模块  pip install flask 二 1 import flas 2 import json import flask #1.启动一个服务 #2.接收到客户端传过来的数据 #3. ...