var uh_rdsp = (function(){

    //获取根目录
var getContextPath = function(){
var pathName = document.location.pathname;
var index = pathName.substr(1).indexOf("/");
var result = pathName.substr(0,index+1);
return result;
} //如果传入的没有参数 则显示迷你指示器 如果第一个参数传入null 并且有第二个参数
//则在指定时间之后关闭迷你指示器
//显示等待框 如果只传入一个参数 则默认为显示内容
//如果传入多个参数 第二个参数则是默认显示多长时间
var showWait = (function(){
var showModal = function(message){
$.showPreloader(message);
}
var showIndicator = function(){
$.showIndicator();
}
var hideModal = function(){
$.hidePreloader();
}
var hideIndicator = function(){
$.hideIndicator();
}
return function(){
if(arguments[0] == 'show'){
if(arguments[1] != null){
showModal(arguments[1]);
}else{
showIndicator();
}
if(arguments.length > 2){
if(arguments[1] != null){
setTimeout(function(){
hideModal();
},arguments[2]);
}else{
setTimeout(function(){
hideIndicator();
},arguments[2]);
}
}
}
if(arguments[0] == 'hide'){
if(arguments[1] == 'modal'){
hideModal();
}
if(arguments[1] == 'indi'){
hideIndicator();
}
}
}
})(); //显示Toast 传入2个参数 第一个参数为显示内容 第二个参数为显示时间 默认2秒
var showToast = (function(){
var showToast = function(){
if(arguments.length == 2){
$.toast(arguments[0],arguments[1]);
}else{
$.toast(arguments[0]);
} } return function(){
showToast.apply(null,arguments);
}
})();
//显示alert 可传入1个参数 显示内容
var showAlert = (function(){
var alertMsg = function(){
$.alert(arguments[0]);
}
return function(){
alertMsg.apply(null,arguments)
}
})(); //显示确认框 传入两个参数 第一个为显示信息 第二个为点击确认后的回调函数
var showConfirm = (function(){
var confirmMsg = function(){
if(arguments.length == 1){
$.confirm(arguments[0]);
}
if(arguments.length == 2){
$.confirm(arguments[0],arguments[1]);
}
}
return function(){
confirmMsg.apply(null,arguments);
}
})(); //显示操作表 传入两个参数 第一个参数为数组 表示显示内容 第二个参数为回调方法
var showActions = (function(){
var cache = {};
var actions = function(){
var buttons1 = [];
for (var i = 0,l=arguments[0].length;i < l;i++) {
buttons1.push({text:arguments[0][i].text,onClick:arguments[0][i].onclick});
}
var buttons2 = [{text:'取消'}];
var groups = [buttons1, buttons2];
$.actions(groups);
}
return function(){
actions.apply(null,arguments);
}
})();
//显示日期选择控件
var showDatePicker = (function(){
var cache = {};
var showDateFun = function(){
var id = arguments[0];
var showdate = arguments[1];
id.calendar({value:[showdate],minDate:showdate});
}
return function(){
if(arguments[0].id in cache){
return ;
}
cache[arguments[0].id] = arguments[0];
showDateFun.apply(null,arguments);
}
})(); //parse
var parseTemplate = function(dta,tmpl){
var format = {
name : function(x) {
if(x == null || x == "null"){
return "";
}
return x;
}
};
return tmpl.replace(/{(\w+)}/g, function(m1, m2) {
if (!m2 && m2!= "null")
return "";
return (format && format[m2]) ? format[m2](dta[m2]) : dta[m2];
});
};
//ajax 请求前置方法
$(document).on('ajaxBeforeSend', function(e, xhr, options){
xhr.setRequestHeader('Authorization',"UH_RDSP_tok"+$('#token').val());
});
//发送ajax请求 传入3个参数 url:请求地址 params:请求参数 callback:回调方法
var ajaxUrl = (function(){
var count = 1;
var timer ;
var isFirst = true;
var ajaxfun = function(){
var url = arguments[0];
var params = arguments[1];
var str = JSON.stringify(params);
var callback = arguments[2];
$.ajax({
type: 'POST',
url: getContextPath()+url,
data: params,
dataType: 'json',
context: $('body'),
success: function(data){
callback(data);
count++;
},
error: function(xhr, type){
showAlert('请求异常');
}
})
}
return function(){
var args = arguments;
// if(isFirst){
//
// return isFirst = false;
// }
ajaxfun.apply(null,arguments);
// if(timer){
// showToast('操作过于频繁,请稍后',1000);
// return false;
// }
// timer = setTimeout(function(){
// clearTimeout(timer);
// timer = null;
// ajaxfun.apply(null,args);
// },2000);
}
})();
//发送post请求 传入2个参数 url:请求地址 params:请求参数
var postUrl = (function(){
var timer;
var isFirst = true;
var postFun = function(){
var url = arguments[0];
var params = arguments[1];
var temp = document.createElement("form");
temp.action = url;
temp.method = "post";
temp.style.display = "none";
for (var x in params) {
var opt = document.createElement("textarea");
opt.name = x;
opt.value = params[x];
// alert(opt.name)
temp.appendChild(opt);
}
var opt = document.createElement("textarea");
opt.name = 'token';
opt.value = "UH_RDSP_tok"+$('#token').val();
temp.appendChild(opt);
document.body.appendChild(temp);
temp.submit();
}
return function(){
var args = arguments;
if(isFirst){
postFun.apply(null,arguments);
return isFirst = false;
}
if(timer){
showToast('操作过于频繁,请稍后',1000);
return false;
}
timer = setTimeout(function(){
clearTimeout(timer);
timer = null;
postFun.apply(null,args);
},2000);
} })();
//函数截流 传入调用方法 以及延迟时间 在调用方法之后 延迟时间之后才会继续调用方法
var throttle = function(fn,interval){
var _self = fn,
timer,
firstTime = true;
return function(){
var args = arguments,
_me = this;
if(firstTime){
_self.apply(_me,args);
return firstTime = false;
}
if(timer){
showToast('操作过于频繁,请稍后',1000);
return false;
}
timer = setTimeout(function(){
clearTimeout(timer);
timer = null;
_self.apply(_me,args);
},interval||2000);
}
};
//每隔200毫秒执行一次方法 每次执行count个
var timeChunk = function(ary,fn,count){
var obj,t;
var len = ary.length;
var start = function(){
for (var i = 0; i < Math.min(count||1,ary.length); i++) {
var obj = ary.shift();
fn(obj);
}
}
return function(){
t = setInterval(function(){
if(ary.length === 0){
return clearInterval(t);
}
start();
},200);
}
} var sendparams = {};
var loading = false;
// 最多可加载的条目
var maxItems = 200;
// 每次加载添加多少条目
var itemsPerLoad = 10;
// 上次加载的序号
var lastIndex = 0;
var count = 1;
var pullDownRefresh = function(url,params,callback){
sendparams = params;
$(document).on('refresh', '.pull-to-refresh-content',function(e) {
callback(url,sendparams,1);
count = 1;
});
}
var pullUpRefresh = function(url,params,callback){
lastIndex = 0;
count = 1;
$(document).on('infinite', '.infinite-scroll-bottom',function() {
// 如果正在加载,则退出
if (loading) return;
// 设置flag
loading = true;
var url = arguments[0];
sendparams = arguments[1];
var callback = arguments[2]; if (lastIndex >= maxItems) {
// 加载完毕,则注销无限加载事件,以防不必要的加载
$.detachInfiniteScroll($('.infinite-scroll'));
// 删除加载提示符
$('.infinite-scroll-preloader').remove();
return;
}
var total = callback(url,sendparams,count);
count++;
maxItems = total;
// 更新最后加载的序号
lastIndex = $('.list-container').children().length;
//容器发生改变,如果是js滚动,需要刷新滚动
$.refreshScroller();
// 重置加载flag
loading = false; });
} //获取明天日期 并以YYYY-MM-DD格式化
var getNowDate = function(){
var date = new Date();
date = new Date((date/1000+86400)*1000);
var seperator1 = "-";
var seperator2 = ":";
var year = date.getFullYear();
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 currentdate = year + seperator1 + month + seperator1 + strDate
// + " " + date.getHours() + seperator2 + date.getMinutes()
// + seperator2 + date.getSeconds();
var currentdate = year + seperator1 + month + seperator1 + strDate; return currentdate;
} function hasClass(obj, cls) {
return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
} function removeClass(obj, cls) {
if (hasClass(obj, cls)) {
var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
obj.className = obj.className.replace(reg, ' ');
}
}
function addClass(obj, cls) {
if (!hasClass(obj, cls)) {
obj.className += " " + cls;
}
}
//传入两个参数 1.show或者hide 2.callback 城市点击回调方法
var showCitys = (function(){
var isFirst = true;
var showCity = function(){
document.getElementById("bg").style.display ="block";
document.getElementById("show").style.display ="block";
}
var hideCity = function(){
document.getElementById("bg").style.display ='none';
document.getElementById("show").style.display ='none';
}; var createCity = function(){
var cityshtml = '<div id="bg"></div><div id="show"><div><!--当前城市--><div class="citys_top uh_rdsp_white_background">当前城市:<img id="citysclose"src="../images/Item_Clost.png"class="pull-right"style="width: 20px;margin-right: 20px;"/></div><!--城市列表--><div class="uh_rdsp_white_background"><div class="row city_button_parentdiv"><hr class="text_titleshow_hrs"><div class="col-33 city_button_div"><input type="button"class="city_button_selected city_button_content"value="全省"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="太原市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="大同市"/></div></div><div class="row city_button_parentdiv"><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="阳泉市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="长治市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="晋城市"/></div></div><div class="row city_button_parentdiv"><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="朔州市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="忻州市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="晋中市"/></div></div><div class="row city_button_parentdiv"><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="临汾市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="吕梁市"/></div><div class="col-33 city_button_div"><input type="button"class="city_button city_button_content"value="运城市"/></div></div><div class="uh_rdsp_white_background city_bottom"id="citys_bottom">确&nbsp;&nbsp;&nbsp;&nbsp;定</div></div><!--作者:123366176@qq.com时间:2016-08-02描述:确定按钮--></div></div>';
$('#htmlbody').append(cityshtml);
var citys = document.getElementsByClassName('city_button_content');
var callback = arguments[1];
var selectedcityname = '全省';
var selectedcityid = '';
document.getElementById("bg").style.display ="block";
document.getElementById("show").style.display ="block";
document.getElementById('citysclose').onclick = hideCity;
document.getElementById('citys_bottom').onclick = function(){
callback(selectedcityname,selectedcityid);
hideCity();
}; var cleanAll = function(){
for(var i = 0;i < citys.length;i++){
removeClass(citys[i],'city_button_selected');
addClass(citys[i],'city_button')
}
}
for(var i = 0;i < citys.length;i++){
(function(i){
citys[i].onclick = function(){
cleanAll.call();
if(citys[i].value == '全省'){
selectedcityname = '全省';
selectedcityid = '';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
}else if(citys[i].value == '太原市'){
selectedcityname = '太原市';
selectedcityid = '1401';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1401);
}else if(citys[i].value == '大同市'){
selectedcityname = '大同市';
selectedcityid = '1402';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1402);
}else if(citys[i].value == '阳泉市'){
selectedcityname = '阳泉市';
selectedcityid = '1403';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1403);
}else if(citys[i].value == '长治市'){
selectedcityname = '长治市';
selectedcityid = '1404';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1404);
}else if(citys[i].value == '晋城市'){
selectedcityname = '晋城市';
selectedcityid = '1405';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1405);
}else if(citys[i].value == '朔州市'){
selectedcityname = '朔州市';
selectedcityid = '1406';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1406);
}else if(citys[i].value == '忻州市'){
selectedcityname = '忻州市';
selectedcityid = '1407';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1407);
}else if(citys[i].value == '晋中市'){
selectedcityname = '晋中市';
selectedcityid = '1408';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1408);
}else if(citys[i].value == '临汾市'){
selectedcityname = '临汾市';
selectedcityid = '1409';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1409);
}else if(citys[i].value == '吕梁市'){
selectedcityname = '吕梁市';
selectedcityid = '1410';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1410);
}else if(citys[i].value == '运城市'){
selectedcityname = '运城市';
selectedcityid = '1411';
removeClass(citys[i],'city_button');
addClass(citys[i],'city_button_selected');
//callback.call(null,citys[i].value,1411);
} }
})(i,callback,cleanAll,selectedcityname,selectedcityid) }
};
return function(){
if(arguments.length == 0){
return ;
}
if(isFirst == true && arguments[0] == 'show'){
createCity.apply(null,arguments);
isFirst = false;
return ;
}
if(arguments[0] == 'hide'){
hideCity.apply(null,arguments);
return ;
}
if(arguments[0] == 'show'){
showCity.apply(null,arguments);
return ;
}
} })(); var ajaxUrlPath = (function(){
var count = 1;
var timer ;
var isFirst = true;
var ajaxfun = function(){
var url = arguments[0];
var params = arguments[1];
var str = JSON.stringify(params);
var callback = arguments[2];
$.ajax({
type: 'POST',
url: $('#contextPath').val()+url,
data: params,
dataType: 'json',
context: $('body'),
success: function(data){
callback(data);
count++;
},
error: function(xhr, type){
showAlert('请求异常');
}
})
}
return function(){
var args = arguments;
if(isFirst){
ajaxfun.apply(null,arguments);
return isFirst = false;
}
if(timer){
showToast('操作过于频繁,请稍后',1000);
return false;
}
timer = setTimeout(function(){
clearTimeout(timer);
timer = null;
ajaxfun.apply(null,args);
},2000);
}
})(); return {
getContextPath : getContextPath,
showWait: showWait,
showToast:showToast,
showAlert:showAlert,
showConfirm:showConfirm,
showActions:showActions,
showDatePicker:showDatePicker,
postUrl:postUrl,
ajaxUrl:ajaxUrl,
throttle:throttle,
getNowDate:getNowDate,
showCitys:showCitys,
removeClass:removeClass,
addClass:addClass,
pullUpRefresh:pullUpRefresh,
pullDownRefresh:pullDownRefresh,
parseTemplate:parseTemplate,
ajaxUrlPath:ajaxUrlPath
};
})();

js常用共同方法的更多相关文章

  1. JS常用校验方法(判断输入框是否为空,数字,电话,邮件,四舍五入等)

    JS常用校验方法: 1.判断输入框是否为空,为空时弹出提示框 2.关闭窗口 3.检查输入字符串是否为数字 4.强制把大写转换成小写 5.手机号码校验,长度为11位数字. 6.电子邮件校验 7.电话号码 ...

  2. 【js常用DOM方法】

    介绍几个js DOM的常用方法 获取元素节点 getElementById  getElementsByTagName  getElementsByClassName 先写一个简单的网页做测试: /* ...

  3. JS常用公共方法封装

    _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||/ ...

  4. js常用API方法

    String对象常用的API:API指应用程序编程接口,实际上就是一些提前预设好的方法. charAt() 方法可返回指定位置的字符. stringObject.charAt(index) index ...

  5. js常用通用方法

    验证身份证详细方法 function isCardNo(pId) { var arrVerifyCode = [1, 0, "x", 9, 8, 7, 6, 5, 4, 3, 2] ...

  6. 一些JS常用的方法

    /** * JS公用类库文件 */ (function(){ Tools = { W: window, D: document, Postfix: ".php", GetId: f ...

  7. Node.js 常用Mongoose方法

    Node.js 手册查询-Mongoose 方法 一.Schema 一种以文件形式存储的数据库模型骨架,无法直接通往数据库端,也就是说它不具备对数据库的操作能力.可以说是数据属性模型(传统意义的表结构 ...

  8. Node.js常用express方法

    Node.js 手册查询-Express 方法 1.send方法 send 方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据 send方法在输出响应时会自动进行一些设置,比如HEAD信息.H ...

  9. JS常用属性方法大全

    1. 输出语句 : document.write(""); 2.JS 中的注释为 : // 3. 传统的 HTML 文档顺序是 : document->html->(h ...

随机推荐

  1. canvas合成图片 圣诞节新技能戴帽

    <!doctype html><html><head><meta charset="utf-8"><title>Html ...

  2. HTTP协议(持续更新)

    http请求由三部分组成,分别是:请求行.消息报头.请求正文 HTTP(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接 ...

  3. python 面向对象 【进阶】

    多态 多态跟python没有太大关系,因为python本身原生支持多态. def func(arg):          #多态      print (arg) func(1) func(‘pand ...

  4. Jmeter参数化设置,多用户登录

    一.模拟多用户登录场景 如登录模式如下图所示,登录界面中需要输入:用户名.密码.验证码 用户名以及密码均是固定值,不需要做处理.验证码需要处理一下,可以后台配置成固定值,具体可以找开发咨询. 在此场景 ...

  5. GIT团队合作探讨之一-保持工作同步的概念和实践

    感谢英文原文作者,这是我看到的关于git协同工作写的最清晰简洁的文章了: https://www.atlassian.com/git/tutorials/syncing/git-push SVN使用一 ...

  6. 如何在 Linux 虚拟机上扩展根文件系统

    问题描述 通过 Azure 平台部署的 Linux 虚拟机默认的根文件系统容量有限,需要进行扩展. 问题分析 由于 Azure 平台部署的 Linux 虚拟机默认根文件系统容量比较小,客户在使用过程中 ...

  7. 解决maven工程无法创建src/main/java包名的方法

    我的maven工程不知道为什么无法创建src/main/java这样的包,我创建好的maven工程只有src/main/resources包,其他的主要包都没有,而且不能创建包,new出来的包都是一个 ...

  8. MVC中重定向几种方法

    //1.Response.Redirect using System; using System.Collections.Generic; using System.Linq; using Syste ...

  9. July 12th 2017 Week 28th Wednesday

    No way is impossible to courage. 勇敢面前没有通不过的路. Without faith and courage, nothing is possible. With t ...

  10. ZT 苍天助曹不助汉哪

    诸葛亮能夜观星象,但为什么在上方谷一役中,孔明没有测出突如其来的大雨,却高呼“苍天助曹不助汉哪”断送了自己的性命,这是为什么 谋事在人,成事在天.   雁过留影 3级 2011-04-18 天命不可违 ...