Имеет ли моя библиотека право на существование? [требует правки]

384
25 июля 2017, 20:30

Если нужно будет, я скажу, "что и как"...

Вот код:

(function () { 
	var a, 
	b, 
	c = undefined, 
	d = document, 
	e, 
	f, 
	g = 'class', 
	h, 
	i, 
	j, 
	k, 
	l = function (f) { 
		d.addEventListener("DOMContentLoaded", f); 
	}, 
	m, 
	n, 
	o, 
	p = "__proto__", 
	q, 
	r, 
	s, 
	t, 
	u, 
	v, 
	w = window, 
	x; 
	w.Afunc = { 
		val: function (t) { 
			var b = null, 
			a = this.a(); 
			(t === c && ((b = a.value) || (b = a.innerHTML) || (b = a.innerText))) || (a.value = t) || (a.innerHTML = t) || (a.innerText = t); 
			return b ? b : a; 
		}, 
		drag: function (v) { 
			var a = this.a(), 
			r = a; 
			if (v) 
				var dz = v.zonename, 
				dr = v.ondrop, 
				iz = v.zonedrop, 
				on = v.onzone, 
				off = v.offzone, 
				gz = v.grabelem; 
			a.addEventListener('mousedown', function () { 
				if (dz) 
					var F = A("[dropzone=" + dz + "]").cDetect(); 
				var z = A(gz ? (typeof gz == "string" ? a.querySelector(gz) : gz) : a).cDetect(), 
				p = A.cPos(), 
				Z = a.pos(), 
				f2 = Z.l, 
				k2 = Z.t, 
				x = false; 
				w.onmousemove = function () { 
					if (z) { 
						var u = A.cPos(), 
						h = { 
							t: u.t - p.t, 
							l: u.l - p.l 
						}; 
						if (F) { 
							!x && on && on(); 
							x = true; 
						} else { 
							x && off && off(); 
							x = false; 
						} 
						a.pos({ 
							l: f2 + h.l, 
							t: k2 + h.t 
						}); 
					} 
					return false; 
				}; 
				w.onmouseup = function () { 
					x && iz && iz(); 
					dr && dr(); 
					w.onmousemove = ''; 
					w.onmouseup = ''; 
				}; 
				return false; 
			}); 
			return a; 
		}, 
		gg:function (p) { 
			var a = this.a(); 
			a.addEventListener('mousedown', function () { 
				console.log("gg"); 
			}); 
		}, 
		pos: function (p) { 
			var a = this.a(), 
			u = a.getBoundingClientRect(); 
			if (!p) { 
				return { 
					l: u.left, 
					r: u.right, 
					t: u.top, 
					b: u.bottom 
				} 
			} else { 
				p.t && (a.style.top = (p.t) + "px"); 
				p.l && (a.style.left = (p.l) + "px"); 
				return a; 
			} 
		}, 
		cDetect: function (t) { 
			var p = A.cPos(t), 
			z = A(this.a()).pos(), 
			o; 
			if (z.r > p.l && p.l > z.l && z.b > p.t && p.t > z.t) 
				o = 1; 
			return o; 
		}, 
		getStyle: function (t) { 
			var a = this.a(); 
			return parseFloat(w.getComputedStyle(a).getPropertyValue(t)); 
		}, 
		attr: function (v) { 
			var b = null, 
			a = this.a(), 
			c; 
			if (typeof v === "object") 
				for (var k in v) { 
					a.setAttribute(k, v[k]); 
				} 
			else if (v) 
				b = a.getAttribute(v); 
			else { 
				b = {}; 
				c = a.attributes; 
				for (var k in c) { 
					if (c[k].nodeName) 
						b[c[k].nodeName] = c[k].nodeValue; 
				} 
			} 
			return b ? b : a; 
		}, 
		addClass: function (t) { 
			var a = this.a(), 
			l = a.attr(g); 
			a.attr({ 
				class: (typeof l === "string" ? l + " " : "") + t 
			}); 
			return a; 
		}, 
		remClass: function (t) { 
			var a = this.a(), 
			c = a.attr(g).split(' '), 
			z = 0, 
			b = []; 
			while (z < c.length) { 
				c[z] !== t && (b[b.length] = c[z]); 
				++z; 
			} 
			a.attr({ 
				class: b.join(' ') 
			}); 
			return a; 
		}, 
		addElem: function (e) { 
			k = d.createElement(e), 
			a = this.a(); 
			return { 
				first: function () { 
					a.insertBefore(k, a.firstChild); 
					return k; 
				}, 
				last: function () { 
					a.appendChild(k); 
					return k; 
				} 
			}; 
		}, 
		parent: function (n) { 
			var v = this.a(), 
			n = n ? n : 0, 
			p = 1, 
			a = v.parentNode; 
			while (p < n) { 
				a = a.parentNode; 
				++p; 
			} 
			return a; 
		}, 
		remElem: function (e) { 
			var a = this.a(); 
			a.removeChild(typeof e == "string" ? d.querySelector(e) : e); 
			return a; 
		} 
	}; 
	w.AlastFunc = { 
		K: function () { 
			try { 
				return new ActiveXObject("Msxml2.XMLHTTP"); 
			} catch (e) { 
				try { 
					return new ActiveXObject("Microsoft.XMLHTTP"); 
				} catch (ee) {} 
			} 
			if (typeof XMLHttpRequest != 'undefined') { 
				return new XMLHttpRequest(); 
 
			} 
		}, 
		b: function (s) { 
			return location.pathname + s || ""; 
		}, 
		cPos: function (t) { 
			t = t ? t : 'client'; 
			return { 
				t: event[t + 'Y'], 
				l: event[t + 'X'] 
			}; 
		}, 
		toJSON: function (t, p) { 
			var b = JSON.stringify(t); 
			b = p ? JSON.parse(a) : b; 
			return b; 
		}, 
		ajax: function (d) { 
			d.url = d.url[0] != '?' && d.url ? d.url : this.b(d.url); 
			d.type = d.type || "GET"; 
			d.async = d.async || 1; 
			d.cache = d.cache || !1; 
			d.data = d.data || null; 
			var a = this.K(); 
			d.url += !d.cache ? ((d.url.indexOf('?') >= 0) ? '&' : '?') + '_=' + new Date().getTime() : d.url; 
			a.open(d.type, d.url, d.async); 
			a.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
			a.onreadystatechange = function () { 
				if (a.readyState == 4) { 
					d.success( 
						a.responseText); 
				} 
			}; 
			a.send(d.data); 
		} 
	}; 
	w.Ainit = function (s) { 
		this.a = function () { 
			return s; 
		}; 
		this.__proto__ = Afunc; 
	}; 
 
	(w.A = function (s) { 
		var s = s ? (typeof s === "string" ? d.querySelector(s) : s) : (this !== w ? this : d.body), 
		h = new Ainit(s); 
		return h; 
	})[p] = AlastFunc; 
	a = Node.prototype[p]; 
	((Node.prototype[p] = Afunc)[p] = a).a = function () { 
		return this; 
	}; 
})(); 
 
//просто пример работы(потянуть за синий квадрат) 
A('html') 
.addElem('div') 
.first() 
.attr({ 
id:"gg", 
style:"background:black;width:200px;height:200px;position:absolute;top:0;left:0" 
}) 
.drag({ 
grabelem:"#sh" 
}) 
.addElem('div') 
.first() 
.attr({ 
id:"sh", 
style:"background:blue;width:50px;height:50px;position:absolute;top:20px;left:50px" 
})

READ ALSO
проблема умного фильтра в битрикс

проблема умного фильтра в битрикс

Господа, подскажите, пожалуйста

401
Почему зацикливается React-infinite

Почему зацикливается React-infinite

Здравствуйте, у меня есть компонент он состоит из List (immutableJS), я хочу этот компонент сделать в качестве бесконечного списка, при прокрутке...

279
шаблоны hamlс+jst через webpack

шаблоны hamlс+jst через webpack

В процессе отделения фронтэнда от rails приложения появилась необходимость собирать ассеты отдельно от рельсового asset pipelineрешил использовать...

216
Событие change срабатывает два раза

Событие change срабатывает два раза

Может кто сталкивался с такой проблемой? Система: Android Браузер: Chrome Mobile Элемент: Select[type=multiple] На select висит обработчик onchange

256