function Pretty(){}
Pretty.prototype.version='1.0.0';
Pretty.prototype.httpRequest={
/**
*请求JSON格式数据
*@param:method 请求方式,标准的GET、POST(_method=PUT)
*@param:url 请求地址URL
*@param:asyn 是否异步请求
*@param:callback 请求成功执行的回调函数
*@data:请求参数
*/
request: function(method,url,asyn,callback,data) {
var param = null;
var temp = 'superstr_timestamp=' + new Date().getTime();
if(data) {
for(var key in data) {
temp = temp + '&' + key + '=' + data[key];
}
}
if(method.toLocaleUpperCase()=='POST') {
param = temp;
} else {
method = 'GET';
if(url.indexOf('?')>-1) {
url = url + '&' + temp;
} else {
url = url + '?' + temp;
}
}
var xhr = new XMLHttpRequest();//创建Http请求对象
xhr.onreadystatechange=function() {
if(xhr.readyState==4&&xhr.status==200) {
callback(JSON.parse(xhr.responseText));
} else if(xhr.readyState==4){
alert("———请求异常———"+"\n"+"请求地址(url):"+url+"\n"+"请求方式(method):"+method+"\n"+"状态码(status):"+xhr.status+"\n"+"异步(asyn):"+asyn);
}
}
xhr.open(method,url,asyn);//asyn(true:异步 false:同步)
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//设置请求头
xhr.send(param);
}
}
Pretty.prototype.arrays={
/**
*移除数组中重复的对象
*@param:arr 数组
*@param:property 数组中对象的属性名称
*@return:array 处理后的数组
*/
only: function(arr, property) {
let hash = {}
var array = arr.reduce((item, next) => {
if (!hash[next[property]]) {
hash[next[property]] = true;
item.push(next);
}
return item;
}, [])
return array;
},
/**
*移除数组中的对象
*@param:arr 数组
*@param:property 数组中对象的属性名称
*@param:value 数组中对象属性的值
*@return:array 处理后的数组
*/
remove: function(arr,property,value) {
var array = arr.filter(
(obj) => {return obj[property] != value}
)
return array;
},
/**
*搜索数组中的对象
*@param:arr 数组
*@param:property 数组中对象的属性名称
*@param:value 数组中对象属性的值
*@return:array 处理后的数组
*/
search: function(arr,property,value) {
var array = arr.filter(
(obj) => {return obj[property] == value}
)
return array;
},
/**
*数组冒泡排序
*@param:arr 数组
*@param:property 数组中对象的属性名称
*/
bubbleSort: function(arr, property) {
var array = arr,temp;
for(var i=0; i<arr.length;i++) {
for(var j=i+1;j<arr.length;j++) {
if(arr[i][property]>arr[j][property]) {
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return array;
}
}
Pretty.prototype.classNames={
names: {
draggable:"draggable"
},
/**
*添加拖拽效果,对象互换
*@descriptions:在添加效果之前需要保证对象可拖动(draggable="true")
*/
draggable: function() {
var className = this.names.draggable;
var obj = null;//拖动的对象
window.onload=function() {
var elements = document.getElementsByClassName(className);
for(var n=0;n<elements.length;n++) {
//开始拖动
elements[n].ondragstart = function(event) {
obj=event.target;
event.dataTransfer.setData("draggable",event.target.innerHTML);
}
//放置的位置
elements[n].ondragover = function(event) {
event.preventDefault();
}
//进行放置
elements[n].ondrop = function(event) {
event.preventDefault();
if(obj != event.target){
obj.innerHTML = event.target.innerHTML;
event.target.innerHTML=event.dataTransfer.getData("draggable");
}
}
}
}
}
}
Pretty.prototype.events={
/**
*阻止事件冒泡
*/
stopBubble: function(event) {
if(event && event.stopPropagation);
event.stopPropagation();
} else {
window.event.cancelBubble=true;
}
}
}
var _ = new Pretty();