项目中常用的js封装 返回首页

发表于 2018-07-17 | 本文共 3150 字

判断undefined返回空字符串

//如果为undefined 返回空空字符串
function formatundefined(str){
	if(str == null || str == undefined || str == "undefined"){
		return "";
	}
	return str;
}

点击事件 判断对应div是否已加载并显示

/**
 * 点击事件 判断对应div是否已加载并显示
 * @param showClass  需要加载的div class名
 * @param loadUrl    请求url
 */
function showWidgets(showClass, loadUrl){	
    if(!$(showClass).is(':empty')){
        var status = $(showClass).css('display');
        if(status == 'block'){
            $(showClass).css('display', 'none');
        }else{
            $(showClass).show();
        }
    }else{
        $(showClass).load(loadUrl);
        $(showClass).show();
    }
}


/**
 * 点击事件 判断对应div是否已加载并显示
 * 两次id相同则显示隐藏,不同直接加载
 * @param showClass  需要加载的div class名
 * @param preid    之前的id
 * @param curid    现在的id
 * 
 */
function showWidgetsById(showClass, loadUrl,preid,curid){
	if(preid==curid){
		showWidgets(showClass,loadUrl);
	}else{
		$(showClass).load(loadUrl);
        $(showClass).show();
	}
}

ajax封装

/**
 * 
 * @param type GET/POST
 * @param url  请求路径
 * @param data 请求对象,没有就null
 * @param successFun 回调函数
 * @param async  true异步,false同步
 */
function send(type,url,data,successFun,async){
	var sessionId = getSessionId();
	if(sessionId==null||sessionId==undefined||sessionId==""){
		 window.location.href="/jczh/login.html";
		 return;
	}
	var retObj;
	var param = {"param":"","sessionId":sessionId};
	if(data!=null){
		param = {"param" :JSON.stringify(data),"sessionId":sessionId};
	}
	$.ajax({
		type:type,
		url:server_url+url,
		contentType:"application/x-www-form-urlencoded;charset=UTF-8",//格式
		dataType:'json', 
		data:param,	
		async:async,
		cache:false,
		beforeSend:function(){
		},
		complete:function(){
		},
		error:function(){
			//alert("访问后台"+url +"异常,请联系管理员!");
		},
		success:function(data){	
			 if(data.code==-1){	
				 window.location.href="/jczh/login.html";
			 }else if(data.code==0){
				 //后端出错
				 alert(data.data);
			 }else if(data.code==2){
				 //成功,比如新增成功,需要输出的
				 alert(data.data);
				 if(successFun!=null){
					 successFun(data.data);
				 }
			 }else if(data.code=1){
				 //数据回调
				 if(successFun!=null){
					 successFun(data.data);
				 }
			 }
			 retObj=data;
		}
    });
	return retObj;
}

上传文件

function fileUpLoad(type,url,data,successFun,async,fileButtonId){
	var sessionId = getSessionId();
	if(sessionId==null||sessionId==undefined||sessionId==""){
		 window.location.href="/jczh/login.html";
		 return;
	}
	var param = {"param":"","sessionId":sessionId};
	if(data!=null){
		param = {"param" :JSON.stringify(data),"sessionId":sessionId};
	}
	$.ajaxFileUpload({
		secureuri:false,
		fileElementId:fileButtonId,
		datatype:'json',
		async:async,
		url:server_url+url,
		type:type,
		data:param,
		beforeSend:function(){
			//传数据之前处理函数(可不用写)
		},
		success:function(reply){
		},
		error:function(e){
			//错误处理函数
		},
		complete:function(replay){
			//传数据完成处理函数(可不用写)
			try{
				var str = replay.responseText.split("{")[1].split("}")[0];
				str = "{"+str+"}";
				var data = JSON.parse(str);
				if(data.code==-1){	
					 window.location.href="/jczh/login.html";
				 }else if(data.code==0){
					 //后端出错
					 alert(data.data);
				 }else if(data.code==2){
					 //成功,比如新增成功,需要输出的
					 alert(data.data);
					 if(successFun!=null){
						 successFun(data.data);
					 }
				 }else if(data.code=1){
					 //数据回调
					 if(successFun!=null){
						 successFun(data.data);
					 }
				 }
			}catch(e){}
		}
    });
}

往sessionStorage中存入,移除,获取数据,以及获取用户信息

/**
 * 往会话中存数据
 * @param key
 * @param value
 */
function putSessionData(key,value){
	window.sessionStorage.setItem(key,JSON.stringify(value));
}

/**
 * 往会话中移除数据
 * @param key
 * @param value
 */
function removeSessionData(key){
	window.sessionStorage.removeItem(key);
}

/**
 * 往会话中获取数据
 * @param key
 */
function getSessionData(key){
	try{
		return jQuery.parseJSON(sessionStorage.getItem(key));	
	}catch(e){
		return null;
	}
}
/**
 * 往会话中获取用户信息
 * @param key
 */
function getSessionUserInfo(){
	var userInfo = getSessionData("userInfo");
	if(userInfo==null){
		window.location.href="/jczh/login.html";
		return;
	}
	return userInfo;
}
function getSessionId(){
	var userInfo = getSessionData("userInfo");
	if(userInfo==null){
		return null;
	}
	return userInfo.sessionId;
}

通过key来获取html?后面的数据

/**
 * 通过key来获取html?后面的数据
 * */
function getUrlParam(key){  
    var url = decodeURI(location.search.replace(/^\?/,'')).split('&');
    var paramsObj = {};
    for(var i = 0, iLen = url.length; i < iLen; i++){
        var param = url[i].split('=');
        paramsObj[param[0]] = param[1];
    }
    if(key){
        return paramsObj[key] || '';
    }
    return paramsObj;
}

判断数据类型

/**
 * 判断数据类型
 */
var toString = Object.prototype.toString;
function type(elem) {
    if (elem == null) {
        return elem + '';
    }
    return toString.call(elem).replace(/[\[\]]/g, '').split(' ')[1].toLowerCase();
}

判断数组是否包含元素

/**
 * 判断数组是否包含元素
 * @param arr
 * @param obj
 * @returns {Boolean}
 */
function  contains(arr,obj){
	var i = arr.length;
	while(i--){
		if(arr[i] == obj){
			return true;
		}
	}
	return false;
}

移除数组里的元素

/**
 * 移除数组里的元素
 * @param arr
 * @param obj
 * @returns {Array}
 */
function remove(arr,obj){
	var i = arr.length;
	var newarr =  new Array();
	while(i--){
		if(arr[i] != obj){
			newarr.push(arr[i]);
		}
	}
	return newarr;
}

原生拖拽

function dragEvent(drag,dbody){   
	window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
	drag.onmousedown = function (event) {
        var event = event || window.event;
        var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
        var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;   
        var bodyX = pageX - dbody.offsetLeft;
        var bodyY = pageY - dbody.offsetTop;
        window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
        document.onmousemove = function (event) {
            var event = event || window.event;
            var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
            var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
            dbody.style.left = pageX - bodyX + "px";
            dbody.style.top = pageY - bodyY + "px";
            window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

        };
    };
    document.onmouseup = function () {
        document.onmousemove = null;
    };
};

判断是否有下级ul

function haschildrenUL(classname,addclass){
	var Userlistli =  $(classname); 
	for(var z = 0; z < Userlistli.length; z++ ){  
		var haschildrenUl = $(Userlistli[z]).find("ul");
		if( haschildrenUl.length <= 0 ){
			var hasi = $(Userlistli[z]).find("i");
			$(hasi).hide();
			$(hasi).parent().addClass(addclass);
		}		 
	} 
}

判断是否谷歌浏览器

/**
 * 判断是否谷歌浏览器
 * @returns {Boolean}
 */
function isChrome(){
	if(navigator){
		var userAgent = navigator.userAgent;
		if(userAgent){
			if(userAgent.indexOf("Chrome")>-1){
				return true;
			}
		}
	}
	return false;
}

往数组里面增加属性

/**
 * 往数组里面增加属性
 * @param array
 * @param dataType
 */
function addDataType(array,dataType){
	for(var i in array){
		array[i].type = dataType;
	}
}

获取当前日期时间 格式”yyyy-MM-dd HH:MM:SS”

//获取当前日期时间 格式"yyyy-MM-dd HH:MM:SS"
function getNowFormatDate() {
    var date = new Date();
    var seperator1 = "-";
    var seperator2 = ":";
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    if (month >= 1 && month <= 9){
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9){
        strDate = "0" + strDate;
    }
    
    var currentdata = date.getFullYear() + seperator1 + month + seperator1 + strDate + " " + date.getHours() + seperator2 + date.getMinutes() + seperator2 + date.getSeconds();
    
    return currentdata;
}

获取当前日期前一个月时间 格式”yyyy-MM-dd HH:MM:SS”

function getLastFormatDate() {
    var date = new Date();
    date.setMonth(date.getMonth()-1);
    var seperator1 = "-";
    var seperator2 = ":";
    var year = date.getFullYear();
    var month = date.getMonth() + 1;
	var strDate = date.getDate();
	var hours = date.getHours();
	var seconds = date.getSeconds();
	var minutes = date.getMinutes();
    if (month >= 1 && month <= 9){
        month = "0" + month;
    }
    if (strDate >= 0 && strDate <= 9){
        strDate = "0" + strDate;
	}
	
	 if (hours >= 0 && hours <= 9){
        hours = "0" + hours;
	}
	 if (seconds >= 0 && seconds <= 9){
        seconds = "0" + seconds;
	}
	 if (minutes >= 0 && minutes <= 9){
        minutes = "0" + minutes;
    }
    
    var lastdata = year + seperator1 + month + seperator1 + strDate + " " + hours + seperator2 + minutes + seperator2 + seconds;
    
    return lastdata;
}

随机生产6位数的数字

function  getUUidNum(){
    var code = Math.floor(Math.random()*900000)+100000;
    return code;
}

获取当天日期,获取前n天的日期

//获取当天日期
function getCurrentDate() {
    var d = new Date();
    var year = d.getFullYear();
    var mon = d.getMonth()+1;
    var day = d.getDate();
    s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
    return s;
}


//获取前n天的日期
function getBeforeDate(n) {
    var n = n;
    var d = new Date();
    var year = d.getFullYear();
    var mon = d.getMonth()+1;
    var day = d.getDate();
    if(day<=n){
        if(mon>1){
            mon = mon-1;
        }else{
            year = year-1;
            mon = 12;
        }
    }
    d.setDate(d.getDate()-n);
    year = d.getFullYear();
    mon = d.getMonth()+1;
    day = d.getDate();
    s = year+"-"+(mon<10?('0'+mon):mon)+"-"+(day<10?('0'+day):day);
    return s;
}

返回顶部

/*
** Scroll To Top 
** 选择器为 .scroll-to-top
*/
$(window).scroll(function () {
	if ($(this).scrollTop() >= 500) {
	$('.scroll-to-top').fadeIn();
	} else {
	$('.scroll-to-top').fadeOut();
	}
});


$('.scroll-to-top').click(function () {
	$('html, body').animate({ scrollTop: 0 }, 800);
	return false;
});

获取一个对象的长度

/*
** Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for...in 循环遍历该对象时返回的顺序一致 。
** 语法 Object.keys(obj)
*/
var arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // console: ['0', '1', '2']
console.log(Object.keys(arr).length); // console: 3


显示评论