59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
/**
|
|
* 获取路由的路径和详情参数
|
|
* @returns
|
|
*/
|
|
export function getParamsUrl() {
|
|
let hasDetail = location.hash.split('?');
|
|
let hasName = hasDetail[0].split('#')[1];
|
|
let params = hasDetail[1] ? hasDetail[1].split('&') : [];
|
|
let query = {};
|
|
|
|
for (let i = 0; i < params.length; i++) {
|
|
let param = params[i].split('=');
|
|
query[param[0]] = param[1];
|
|
}
|
|
|
|
return {
|
|
path: hasName,
|
|
query: query,
|
|
params: params,
|
|
};
|
|
}
|
|
|
|
export function closure(name) {
|
|
function fun(currentHash) {
|
|
window.name&&window[name](currentHash)
|
|
}
|
|
return fun;
|
|
}
|
|
|
|
export function genKey() {
|
|
let temp = 'xxxxxxxx';
|
|
return temp.replace(/[xy]/g, function (c) {
|
|
let r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
|
return v.toString(16);
|
|
});
|
|
}
|
|
|
|
export function hasClass(elem, cls) {
|
|
cls = cls || '';
|
|
if (cls.replace(/\s/g, '').length === 0)
|
|
return false;
|
|
return new RegExp(' ' + cls + ' ').test(' ' + elem.className + ' ');
|
|
}
|
|
|
|
export function addClass(elem, cls) {
|
|
if (!hasClass(elem, cls)) {
|
|
elem.className = elem.className === '' ? cls : elem.className + ' ' + cls;
|
|
}
|
|
}
|
|
|
|
export function removeClass(elem, cls) {
|
|
if (hasClass(elem, cls)) {
|
|
let newClass = ' ' + elem.className.replace(/[\t\r\n]/g, '') + ' ';
|
|
while (newClass.indexOf(' ' + cls + ' ') >= 0) {
|
|
newClass = newClass.replace(' ' + cls + ' ', ' ');
|
|
}
|
|
elem.className = newClass.replace(/^\s+|\s+$/)
|
|
}
|
|
} |