beautify_js
This commit is contained in:
parent
0febe4f5fd
commit
5c2f32e184
208 changed files with 3891 additions and 1474 deletions
|
@ -1,12 +1,11 @@
|
|||
|
||||
function bench(test, times) {
|
||||
var sum = 0;
|
||||
for(var i=0; i<times; i++) {
|
||||
if(test.setup) test.setup();
|
||||
var t = new Date();
|
||||
test.work();
|
||||
sum += (new Date() - t);
|
||||
if(test.tearDown) test.tearDown();
|
||||
}
|
||||
return sum;
|
||||
var sum = 0;
|
||||
for (var i = 0; i < times; i++) {
|
||||
if (test.setup) test.setup();
|
||||
var t = new Date();
|
||||
test.work();
|
||||
sum += (new Date() - t);
|
||||
if (test.tearDown) test.tearDown();
|
||||
}
|
||||
return sum;
|
||||
}
|
|
@ -2,22 +2,22 @@ var DocumentFragmentTest = new function() {
|
|||
var benchList = document.getElementById('bench-list');
|
||||
|
||||
var items = [];
|
||||
for(var i=0; i<100; i++) {
|
||||
for (var i = 0; i < 100; i++) {
|
||||
var li = document.createElement('li');
|
||||
li.innerHTML = i;
|
||||
items.push(li);
|
||||
items.push(li);
|
||||
}
|
||||
|
||||
this.insertPlain = new function() {
|
||||
|
||||
this.setup = function() {
|
||||
while(benchList.firstChild) {
|
||||
while (benchList.firstChild) {
|
||||
benchList.removeChild(benchList.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
this.work = function() {
|
||||
for(var i=0; i<items.length; i++) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
benchList.appendChild(items[i]);
|
||||
}
|
||||
}
|
||||
|
@ -28,18 +28,18 @@ var DocumentFragmentTest = new function() {
|
|||
|
||||
this.setup = function() {
|
||||
// очистить всё
|
||||
while(benchList.firstChild) {
|
||||
while (benchList.firstChild) {
|
||||
benchList.removeChild(benchList.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
this.work = function() {
|
||||
var docFrag = document.createDocumentFragment();
|
||||
for(var i=0; i<items.length; i++) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
docFrag.appendChild(items[i]);
|
||||
}
|
||||
benchList.appendChild(docFrag);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
}
|
|
@ -2,22 +2,22 @@ var DocumentFragmentTest = new function() {
|
|||
var benchList = document.getElementById('bench-list');
|
||||
|
||||
var items = [];
|
||||
for(var i=0; i<100; i++) {
|
||||
for (var i = 0; i < 100; i++) {
|
||||
var li = document.createElement('li');
|
||||
li.innerHTML = i;
|
||||
items.push(li);
|
||||
items.push(li);
|
||||
}
|
||||
|
||||
this.insertPlain = new function() {
|
||||
|
||||
this.setup = function() {
|
||||
while(benchList.firstChild) {
|
||||
while (benchList.firstChild) {
|
||||
benchList.removeChild(benchList.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
this.work = function() {
|
||||
for(var i=0; i<items.length; i++) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
benchList.appendChild(items[i]);
|
||||
}
|
||||
}
|
||||
|
@ -28,18 +28,18 @@ var DocumentFragmentTest = new function() {
|
|||
|
||||
this.setup = function() {
|
||||
// очистить всё
|
||||
while(benchList.firstChild) {
|
||||
while (benchList.firstChild) {
|
||||
benchList.removeChild(benchList.firstChild);
|
||||
}
|
||||
}
|
||||
|
||||
this.work = function() {
|
||||
var docFrag = document.createDocumentFragment();
|
||||
for(var i=0; i<items.length; i++) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
docFrag.appendChild(items[i]);
|
||||
}
|
||||
benchList.appendChild(docFrag);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
/* 1. Вставляет TBODY в документ сразу. а затем элементы */
|
||||
var appendFirst = new function() {
|
||||
var benchTable;
|
||||
|
@ -6,7 +5,7 @@ var appendFirst = new function() {
|
|||
this.setup = function() {
|
||||
// очистить всё
|
||||
benchTable = document.getElementById('bench-table')
|
||||
while(benchTable.firstChild) {
|
||||
while (benchTable.firstChild) {
|
||||
benchTable.removeChild(benchTable.firstChild);
|
||||
}
|
||||
}
|
||||
|
@ -16,12 +15,12 @@ var appendFirst = new function() {
|
|||
var tbody = document.createElement('TBODY');
|
||||
benchTable.appendChild(tbody);
|
||||
|
||||
for(var i=0; i<20; i++) {
|
||||
for (var i = 0; i < 20; i++) {
|
||||
var tr = document.createElement('TR');
|
||||
tbody.appendChild(tr);
|
||||
for(var j=0; j<20; j++) {
|
||||
for (var j = 0; j < 20; j++) {
|
||||
var td = document.createElement('td');
|
||||
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
|
||||
td.appendChild(document.createTextNode('' + i.toString(20) + j.toString(20)));
|
||||
tr.appendChild(td);
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +35,7 @@ var appendLast = new function() {
|
|||
this.setup = function() {
|
||||
// очистить всё
|
||||
benchTable = document.getElementById('bench-table');
|
||||
while(benchTable.firstChild) {
|
||||
while (benchTable.firstChild) {
|
||||
benchTable.removeChild(benchTable.firstChild);
|
||||
}
|
||||
}
|
||||
|
@ -44,17 +43,17 @@ var appendLast = new function() {
|
|||
this.work = function() {
|
||||
var tbody = document.createElement('TBODY');
|
||||
|
||||
for(var i=0; i<20; i++) {
|
||||
for (var i = 0; i < 20; i++) {
|
||||
var tr = document.createElement('TR');
|
||||
tbody.appendChild(tr);
|
||||
for(var j=0; j<20; j++) {
|
||||
for (var j = 0; j < 20; j++) {
|
||||
var td = document.createElement('td');
|
||||
tr.appendChild(td);
|
||||
td.appendChild(document.createTextNode(''+i.toString(20)+j.toString(20)));
|
||||
td.appendChild(document.createTextNode('' + i.toString(20) + j.toString(20)));
|
||||
}
|
||||
}
|
||||
|
||||
benchTable.appendChild(tbody);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -3,20 +3,20 @@
|
|||
|
||||
if (typeof HTMLElement != "undefined" && !HTMLElement.prototype.insertAdjacentElement) {
|
||||
HTMLElement.prototype.insertAdjacentElement = function(where, parsedNode) {
|
||||
switch(where) {
|
||||
case 'beforeBegin':
|
||||
this.parentNode.insertBefore(parsedNode, this)
|
||||
break;
|
||||
case 'afterBegin':
|
||||
this.insertBefore(parsedNode, this.firstChild);
|
||||
break;
|
||||
case 'beforeEnd':
|
||||
this.appendChild(parsedNode);
|
||||
break;
|
||||
case 'afterEnd':
|
||||
if(this.nextSibling) this.parentNode.insertBefore(parsedNode, this.nextSibling);
|
||||
else this.parentNode.appendChild(parsedNode);
|
||||
break;
|
||||
switch (where) {
|
||||
case 'beforeBegin':
|
||||
this.parentNode.insertBefore(parsedNode, this)
|
||||
break;
|
||||
case 'afterBegin':
|
||||
this.insertBefore(parsedNode, this.firstChild);
|
||||
break;
|
||||
case 'beforeEnd':
|
||||
this.appendChild(parsedNode);
|
||||
break;
|
||||
case 'afterEnd':
|
||||
if (this.nextSibling) this.parentNode.insertBefore(parsedNode, this.nextSibling);
|
||||
else this.parentNode.appendChild(parsedNode);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,6 @@ function getIEComputedStyle(elem, prop) {
|
|||
// restore values for left
|
||||
elem.style.left = leftCopy;
|
||||
elem.runtimeStyle.left = runtimeLeftCopy;
|
||||
|
||||
|
||||
return value;
|
||||
}
|
|
@ -1,8 +1,6 @@
|
|||
|
||||
|
||||
var elems = document.querySelectorAll('form,div,p');
|
||||
|
||||
for(var i=0; i<elems.length; i++) {
|
||||
for (var i = 0; i < elems.length; i++) {
|
||||
elems[i].addEventListener("click", highlightThis, true);
|
||||
elems[i].addEventListener("click", highlightThis, false);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
var form = document.querySelector('form');
|
||||
|
||||
form.onclick = function(event) {
|
||||
|
@ -7,4 +6,4 @@ form.onclick = function(event) {
|
|||
alert("target = " + event.target.tagName + ", this=" + this.tagName);
|
||||
|
||||
event.target.style.backgroundColor = '';
|
||||
};
|
||||
};
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
var elems = document.querySelectorAll('form,div,p');
|
||||
|
||||
for(var i=0; i<elems.length; i++) {
|
||||
for (var i = 0; i < elems.length; i++) {
|
||||
elems[i].addEventListener("click", highlightThis, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,4 +5,4 @@ menu.onclick = function(event) {
|
|||
alert(href);
|
||||
|
||||
return false; // prevent url change
|
||||
};
|
||||
};
|
|
@ -1,3 +1,3 @@
|
|||
function go () {
|
||||
function go() {
|
||||
alert("ok");
|
||||
}
|
||||
}
|
|
@ -1,3 +1,3 @@
|
|||
function go() {
|
||||
alert("ok");
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
function HoverIntent(options) {
|
||||
|
||||
options = Object.create(options); // not to modify the object
|
||||
|
@ -34,7 +33,7 @@ function HoverIntent(options) {
|
|||
pX = event.pageX;
|
||||
pY = event.pageY;
|
||||
pTime = Date.now();
|
||||
|
||||
|
||||
elem.addEventListener('mousemove', onMouseMove);
|
||||
});
|
||||
|
||||
|
@ -73,5 +72,4 @@ function HoverIntent(options) {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
function HoverIntent(options) {
|
||||
/* ваш код */
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
// элемент TD, внутри которого сейчас курсор
|
||||
var currentElem = null;
|
||||
|
||||
|
@ -11,7 +10,7 @@ table.onmouseover = function(event) {
|
|||
}
|
||||
|
||||
// посмотрим, куда пришёл курсор
|
||||
var target = event.target;
|
||||
var target = event.target;
|
||||
|
||||
// уж не на TD ли?
|
||||
while (target != this) {
|
||||
|
@ -33,7 +32,7 @@ table.onmouseout = function(event) {
|
|||
// произошёл уход с элемента - проверим, куда, может быть на потомка?
|
||||
var relatedTarget = event.relatedTarget;
|
||||
if (relatedTarget) { // может быть relatedTarget = null
|
||||
while(relatedTarget) {
|
||||
while (relatedTarget) {
|
||||
// идём по цепочке родителей и проверяем,
|
||||
// если переход внутрь currentElem - игнорируем это событие
|
||||
if (relatedTarget == currentElem) return;
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
|
||||
table.onmouseover = function(event) {
|
||||
var target = event.target;
|
||||
var target = event.target;
|
||||
target.style.background = 'pink';
|
||||
text.value += "mouseover " + target.tagName + "\n";
|
||||
};
|
||||
|
||||
table.onmouseout = function(event) {
|
||||
var target = event.target;
|
||||
var target = event.target;
|
||||
target.style.background = '';
|
||||
text.value += "mouseout " + target.tagName + "\n";
|
||||
};
|
|
@ -1,7 +1,6 @@
|
|||
|
||||
table.onmouseenter = table.onmouseleave = log;
|
||||
|
||||
function log(event) {
|
||||
text.value += event.type+' [target: '+event.target.tagName+']\n';
|
||||
text.value += event.type + ' [target: ' + event.target.tagName + ']\n';
|
||||
text.scrollTop = text.scrollHeight;
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
function log(event) {
|
||||
text.value += event.type+' [target: '+event.target.className+']\n';
|
||||
text.value += event.type + ' [target: ' + event.target.className + ']\n';
|
||||
text.scrollTop = text.scrollHeight;
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
|
||||
function mouselog(event) {
|
||||
text.value += event.type+' [target: '+event.target.className+']\n'
|
||||
text.value += event.type + ' [target: ' + event.target.className + ']\n'
|
||||
text.scrollTop = text.scrollHeight
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
green.onmouseover = green.onmouseout = green.onmousemove = handler;
|
||||
|
||||
|
||||
function handler(event) {
|
||||
var type = event.type;
|
||||
while (type < 11) type += ' ';
|
||||
|
@ -9,38 +9,39 @@
|
|||
}
|
||||
|
||||
|
||||
function clearText() {
|
||||
text.value = "";
|
||||
lastMessage = "";
|
||||
}
|
||||
function clearText() {
|
||||
text.value = "";
|
||||
lastMessage = "";
|
||||
}
|
||||
|
||||
var lastMessageTime = 0;
|
||||
var lastMessage = "";
|
||||
var repeatCounter = 1;
|
||||
function log(message) {
|
||||
if (lastMessageTime == 0) lastMessageTime = new Date();
|
||||
var lastMessageTime = 0;
|
||||
var lastMessage = "";
|
||||
var repeatCounter = 1;
|
||||
|
||||
var time = new Date();
|
||||
function log(message) {
|
||||
if (lastMessageTime == 0) lastMessageTime = new Date();
|
||||
|
||||
if (time - lastMessageTime > 500) {
|
||||
message = '------------------------------\n' + message;
|
||||
}
|
||||
var time = new Date();
|
||||
|
||||
if (message === lastMessage) {
|
||||
repeatCounter++;
|
||||
if (repeatCounter == 2) {
|
||||
text.value = text.value.trim() + ' x 2\n';
|
||||
} else {
|
||||
text.value = text.value.slice(0, text.value.lastIndexOf('x') + 1) + repeatCounter + "\n";
|
||||
}
|
||||
if (time - lastMessageTime > 500) {
|
||||
message = '------------------------------\n' + message;
|
||||
}
|
||||
|
||||
} else {
|
||||
repeatCounter = 1;
|
||||
text.value += message + "\n";
|
||||
}
|
||||
if (message === lastMessage) {
|
||||
repeatCounter++;
|
||||
if (repeatCounter == 2) {
|
||||
text.value = text.value.trim() + ' x 2\n';
|
||||
} else {
|
||||
text.value = text.value.slice(0, text.value.lastIndexOf('x') + 1) + repeatCounter + "\n";
|
||||
}
|
||||
|
||||
text.scrollTop = text.scrollHeight;
|
||||
} else {
|
||||
repeatCounter = 1;
|
||||
text.value += message + "\n";
|
||||
}
|
||||
|
||||
lastMessageTime = time;
|
||||
lastMessage = message;
|
||||
}
|
||||
text.scrollTop = text.scrollHeight;
|
||||
|
||||
lastMessageTime = time;
|
||||
lastMessage = message;
|
||||
}
|
|
@ -8,14 +8,14 @@ function handler(event) {
|
|||
}
|
||||
|
||||
log.value += event.type + ': ' +
|
||||
'target=' + str(event.target) +
|
||||
', relatedTarget=' + str(event.relatedTarget) + "\n";
|
||||
'target=' + str(event.target) +
|
||||
', relatedTarget=' + str(event.relatedTarget) + "\n";
|
||||
log.scrollTop = 1e9;
|
||||
|
||||
|
||||
if (event.type == 'mouseover') {
|
||||
event.target.style.background = 'pink'
|
||||
}
|
||||
if (event.type == 'mouseout') {
|
||||
event.target.style.background = ''
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
document.onmousedown = function(e) {
|
||||
|
||||
var dragElement = e.target;
|
||||
|
@ -7,7 +5,7 @@ document.onmousedown = function(e) {
|
|||
if (!dragElement.classList.contains('draggable')) return;
|
||||
|
||||
var coords, shiftX, shiftY;
|
||||
|
||||
|
||||
startDrag(e.clientX, e.clientY);
|
||||
|
||||
document.onmousemove = function(e) {
|
||||
|
@ -25,10 +23,10 @@ document.onmousedown = function(e) {
|
|||
|
||||
shiftX = clientX - dragElement.getBoundingClientRect().left;
|
||||
shiftY = clientY - dragElement.getBoundingClientRect().top;
|
||||
|
||||
|
||||
dragElement.style.position = 'fixed';
|
||||
|
||||
document.body.appendChild(dragElement);
|
||||
document.body.appendChild(dragElement);
|
||||
|
||||
moveAt(clientX, clientY);
|
||||
};
|
||||
|
@ -44,8 +42,8 @@ document.onmousedown = function(e) {
|
|||
|
||||
function moveAt(clientX, clientY) {
|
||||
// новые координаты
|
||||
var newX = clientX - shiftX;
|
||||
var newY = clientY - shiftY;
|
||||
var newX = clientX - shiftX;
|
||||
var newY = clientY - shiftY;
|
||||
|
||||
// ------- обработаем вынос за нижнюю границу окна ------
|
||||
// новая нижняя граница элемента
|
||||
|
@ -60,11 +58,11 @@ document.onmousedown = function(e) {
|
|||
// обычно скроллим на 10px
|
||||
// но если расстояние от newBottom до docBottom меньше, то меньше
|
||||
var scrollY = Math.min(docBottom - newBottom, 10);
|
||||
|
||||
|
||||
// ошибки округления при полностью прокрученной странице
|
||||
// могут привести к отрицательному scrollY, что будет означать прокрутку вверх
|
||||
// поправим эту ошибку
|
||||
if (scrollY < 0) scrollY = 0;
|
||||
if (scrollY < 0) scrollY = 0;
|
||||
|
||||
window.scrollBy(0, scrollY);
|
||||
|
||||
|
@ -83,7 +81,7 @@ document.onmousedown = function(e) {
|
|||
|
||||
window.scrollBy(0, -scrollY);
|
||||
// при резком движении мыши элемент мог "вылететь" сильно вверх, поправим его
|
||||
newY = Math.max(newY, 0);
|
||||
newY = Math.max(newY, 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -8,12 +8,12 @@ var DragManager = new function() {
|
|||
* downX/downY - координаты, на которых был mousedown
|
||||
* shiftX/shiftY - относительный сдвиг курсора от угла элемента
|
||||
* }
|
||||
*/
|
||||
*/
|
||||
var dragObject = {};
|
||||
|
||||
var self = this;
|
||||
|
||||
function onMouseDown(e){
|
||||
function onMouseDown(e) {
|
||||
|
||||
if (e.which != 1) return;
|
||||
|
||||
|
@ -32,12 +32,12 @@ var DragManager = new function() {
|
|||
function onMouseMove(e) {
|
||||
if (!dragObject.elem) return; // элемент не зажат
|
||||
|
||||
if ( !dragObject.avatar ) { // если перенос не начат...
|
||||
if (!dragObject.avatar) { // если перенос не начат...
|
||||
var moveX = e.pageX - dragObject.downX;
|
||||
var moveY = e.pageY - dragObject.downY;
|
||||
|
||||
// если мышь передвинулась в нажатом состоянии недостаточно далеко
|
||||
if ( Math.abs(moveX) < 3 && Math.abs(moveY) < 3 ) {
|
||||
if (Math.abs(moveX) < 3 && Math.abs(moveY) < 3) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -75,17 +75,17 @@ var DragManager = new function() {
|
|||
}
|
||||
|
||||
function finishDrag(e) {
|
||||
var dropElem = findDroppable(e);
|
||||
var dropElem = findDroppable(e);
|
||||
|
||||
if (!dropElem) {
|
||||
self.onDragCancel(dragObject);
|
||||
} else {
|
||||
self.onDragEnd(dragObject, dropElem);
|
||||
}
|
||||
if (!dropElem) {
|
||||
self.onDragCancel(dragObject);
|
||||
} else {
|
||||
self.onDragEnd(dragObject, dropElem);
|
||||
}
|
||||
}
|
||||
|
||||
function createAvatar(e) {
|
||||
|
||||
|
||||
// запомнить старые свойства, чтобы вернуться к ним при отмене переноса
|
||||
var avatar = dragObject.elem;
|
||||
var old = {
|
||||
|
@ -140,13 +140,13 @@ var DragManager = new function() {
|
|||
document.onmouseup = onMouseUp;
|
||||
document.onmousedown = onMouseDown;
|
||||
|
||||
this.onDragEnd = function(dragObject, dropElem) { };
|
||||
this.onDragCancel = function(dragObject) { };
|
||||
this.onDragEnd = function(dragObject, dropElem) {};
|
||||
this.onDragCancel = function(dragObject) {};
|
||||
|
||||
};
|
||||
|
||||
|
||||
function getCoords(elem) { // кроме IE8-
|
||||
function getCoords(elem) { // кроме IE8-
|
||||
var box = elem.getBoundingClientRect();
|
||||
|
||||
return {
|
||||
|
@ -154,5 +154,4 @@ function getCoords(elem) { // кроме IE8-
|
|||
left: box.left + pageXOffset
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
kinput.onkeydown = kinput.onkeyup = kinput.onkeypress = handle;
|
||||
|
||||
var lastTime = Date.now();
|
||||
|
||||
function handle(e) {
|
||||
if (form.elements[e.type + 'Ignore'].checked) return;
|
||||
|
||||
var text = event.type +
|
||||
' keyCode=' + e.keyCode +
|
||||
' which=' + e.which +
|
||||
|
||||
var text = event.type +
|
||||
' keyCode=' + e.keyCode +
|
||||
' which=' + e.which +
|
||||
' charCode=' + e.charCode +
|
||||
' char=' + String.fromCharCode(e.keyCode || e.charCode) +
|
||||
(e.shiftKey ? ' +shift' : '') +
|
||||
|
@ -26,4 +25,4 @@ function handle(e) {
|
|||
if (form.elements[e.type + 'Stop'].checked) {
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
var table = document.getElementById('bagua-table');
|
||||
|
||||
var editingTd;
|
||||
|
@ -7,22 +6,22 @@ table.onclick = function(event) {
|
|||
|
||||
var target = event.target;
|
||||
|
||||
while(target != table) {
|
||||
while (target != table) {
|
||||
if (target.className == 'edit-cancel') {
|
||||
finishTdEdit(editingTd.elem, false);
|
||||
return;
|
||||
finishTdEdit(editingTd.elem, false);
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.className == 'edit-ok') {
|
||||
finishTdEdit(editingTd.elem, true);
|
||||
return;
|
||||
finishTdEdit(editingTd.elem, true);
|
||||
return;
|
||||
}
|
||||
|
||||
if (target.nodeName == 'TD') {
|
||||
if (editingTd) return; // already editing
|
||||
|
||||
makeTdEditable(target);
|
||||
return;
|
||||
makeTdEditable(target);
|
||||
return;
|
||||
}
|
||||
|
||||
target = target.parentNode;
|
||||
|
@ -30,15 +29,15 @@ table.onclick = function(event) {
|
|||
}
|
||||
|
||||
function makeTdEditable(td) {
|
||||
editingTd = {
|
||||
elem: td,
|
||||
data: td.innerHTML
|
||||
editingTd = {
|
||||
elem: td,
|
||||
data: td.innerHTML
|
||||
};
|
||||
|
||||
td.classList.add('edit-td'); // td, not textarea! the rest of rules will cascade
|
||||
|
||||
var textArea = document.createElement('textarea');
|
||||
textArea.style.width = td.clientWidth + 'px';
|
||||
textArea.style.width = td.clientWidth + 'px';
|
||||
textArea.style.height = td.clientHeight + 'px';
|
||||
textArea.className = 'edit-area';
|
||||
|
||||
|
@ -47,7 +46,7 @@ function makeTdEditable(td) {
|
|||
td.appendChild(textArea);
|
||||
textArea.focus();
|
||||
|
||||
td.insertAdjacentHTML("beforeEnd",
|
||||
td.insertAdjacentHTML("beforeEnd",
|
||||
'<div class="edit-controls"><button class="edit-ok">OK</button><button class="edit-cancel">CANCEL</button></div>'
|
||||
);
|
||||
}
|
||||
|
@ -60,5 +59,4 @@ function finishTdEdit(td, isOk) {
|
|||
}
|
||||
td.classList.remove('edit-td'); // remove edit class
|
||||
editingTd = null;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
var table = document.getElementById('bagua-table');
|
||||
|
||||
/* ваш код */
|
|
@ -28,4 +28,4 @@ function Clock(options) {
|
|||
timer = setInterval(render, 1000);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
function ListSelect(options) {
|
||||
var elem = options.elem;
|
||||
|
||||
|
@ -12,7 +11,7 @@ function ListSelect(options) {
|
|||
var li = e.target.closest('li');
|
||||
if (!li) return;
|
||||
|
||||
if(e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
|
||||
if (e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
|
||||
toggleSelect(li);
|
||||
} else if (e.shiftKey) {
|
||||
selectFromLast(li);
|
||||
|
@ -45,17 +44,17 @@ function ListSelect(options) {
|
|||
if (startElem == target) {
|
||||
// клик на том же элементе, что и раньше
|
||||
// это особый случай
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
var isLastClickedBefore = startElem.compareDocumentPosition(target) & 4;
|
||||
|
||||
if (isLastClickedBefore) {
|
||||
for(var elem = startElem; elem != target; elem = elem.nextElementSibling) {
|
||||
for (var elem = startElem; elem != target; elem = elem.nextElementSibling) {
|
||||
elem.classList.add('selected');
|
||||
}
|
||||
} else {
|
||||
for(var elem = startElem; elem != target; elem = elem.previousElementSibling) {
|
||||
for (var elem = startElem; elem != target; elem = elem.previousElementSibling) {
|
||||
elem.classList.add('selected');
|
||||
}
|
||||
}
|
||||
|
@ -66,4 +65,4 @@ function ListSelect(options) {
|
|||
return li.innerHTML;
|
||||
});
|
||||
};
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
function Voter(options) {
|
||||
var elem = this._elem = options.elem;
|
||||
this._voteElem = elem.querySelector('.vote');
|
||||
|
@ -29,5 +28,4 @@ Voter.prototype._voteDecrease = function() {
|
|||
|
||||
Voter.prototype.setVote = function(vote) {
|
||||
this._voteElem.innerHTML = +vote;
|
||||
};
|
||||
|
||||
};
|
|
@ -10,4 +10,4 @@ StepVoter.prototype._voteIncrease = function() {
|
|||
|
||||
StepVoter.prototype._voteDecrease = function() {
|
||||
this._voteElem.innerHTML = +this._voteElem.innerHTML - this._step;
|
||||
};
|
||||
};
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
function Voter(options) {
|
||||
var elem = this._elem = options.elem;
|
||||
this._voteElem = elem.querySelector('.vote');
|
||||
|
@ -29,5 +28,4 @@ Voter.prototype._voteDecrease = function() {
|
|||
|
||||
Voter.prototype.setVote = function(vote) {
|
||||
this._voteElem.innerHTML = +vote;
|
||||
};
|
||||
|
||||
};
|
|
@ -15,8 +15,8 @@ function Menu(options) {
|
|||
titleElem.className = "title";
|
||||
titleElem.textContent = options.title;
|
||||
|
||||
elem.onmousedown = function() {
|
||||
return false;
|
||||
elem.onmousedown = function() {
|
||||
return false;
|
||||
};
|
||||
|
||||
elem.onclick = function(event) {
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
function Menu(options) {
|
||||
var elem = options.elem;
|
||||
|
||||
elem.onmousedown = function() { return false; }
|
||||
elem.onmousedown = function() {
|
||||
return false;
|
||||
}
|
||||
|
||||
elem.onclick = function(event) {
|
||||
if (event.target.closest('.title')) {
|
||||
|
@ -9,4 +11,4 @@ function Menu(options) {
|
|||
}
|
||||
};
|
||||
|
||||
}
|
||||
}
|
|
@ -7,7 +7,9 @@ function Menu(options) {
|
|||
}
|
||||
|
||||
function render() {
|
||||
var html = options.template({title: options.title});
|
||||
var html = options.template({
|
||||
title: options.title
|
||||
});
|
||||
|
||||
elem = document.createElement('div');
|
||||
elem.innerHTML = html;
|
||||
|
@ -32,8 +34,10 @@ function Menu(options) {
|
|||
|
||||
function renderItems() {
|
||||
if (elem.querySelector('ul')) return;
|
||||
|
||||
var listHtml = options.listTemplate({items: options.items});
|
||||
|
||||
var listHtml = options.listTemplate({
|
||||
items: options.items
|
||||
});
|
||||
elem.insertAdjacentHTML("beforeEnd", listHtml);
|
||||
}
|
||||
|
||||
|
@ -59,4 +63,4 @@ function Menu(options) {
|
|||
this.toggle = toggle;
|
||||
this.close = close;
|
||||
this.open = open;
|
||||
}
|
||||
}
|
|
@ -7,7 +7,9 @@ function Menu(options) {
|
|||
}
|
||||
|
||||
function render() {
|
||||
var html = options.template({title: options.title});
|
||||
var html = options.template({
|
||||
title: options.title
|
||||
});
|
||||
|
||||
elem = document.createElement('div');
|
||||
elem.innerHTML = html;
|
||||
|
@ -26,8 +28,10 @@ function Menu(options) {
|
|||
|
||||
function renderItems() {
|
||||
if (elem.querySelector('ul')) return;
|
||||
|
||||
var listHtml = options.listTemplate({items: options.items});
|
||||
|
||||
var listHtml = options.listTemplate({
|
||||
items: options.items
|
||||
});
|
||||
elem.insertAdjacentHTML("beforeEnd", listHtml);
|
||||
}
|
||||
|
||||
|
@ -49,4 +53,4 @@ function Menu(options) {
|
|||
this.toggle = toggle;
|
||||
this.close = close;
|
||||
this.open = open;
|
||||
}
|
||||
}
|
|
@ -7,7 +7,9 @@ function Menu(options) {
|
|||
}
|
||||
|
||||
function render() {
|
||||
var html = options.template({title: options.title});
|
||||
var html = options.template({
|
||||
title: options.title
|
||||
});
|
||||
|
||||
elem = document.createElement('div');
|
||||
elem.innerHTML = html;
|
||||
|
@ -26,8 +28,10 @@ function Menu(options) {
|
|||
|
||||
function renderItems() {
|
||||
if (elem.querySelector('ul')) return;
|
||||
|
||||
var listHtml = options.listTemplate({items: options.items});
|
||||
|
||||
var listHtml = options.listTemplate({
|
||||
items: options.items
|
||||
});
|
||||
elem.insertAdjacentHTML("beforeEnd", listHtml);
|
||||
}
|
||||
|
||||
|
@ -49,4 +53,4 @@ function Menu(options) {
|
|||
this.toggle = toggle;
|
||||
this.close = close;
|
||||
this.open = open;
|
||||
}
|
||||
}
|
|
@ -28,9 +28,12 @@ function Voter(options) {
|
|||
|
||||
function setVote(vote) {
|
||||
voteElem.innerHTML = +vote;
|
||||
var widgetEvent = new CustomEvent("change", { bubbles: true, detail: +vote });
|
||||
var widgetEvent = new CustomEvent("change", {
|
||||
bubbles: true,
|
||||
detail: +vote
|
||||
});
|
||||
elem.dispatchEvent(widgetEvent);
|
||||
};
|
||||
|
||||
this.setVote = setVote;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,3 @@
|
|||
|
||||
function ListSelect(options) {
|
||||
var elem = options.elem;
|
||||
|
||||
|
@ -12,7 +11,7 @@ function ListSelect(options) {
|
|||
var li = e.target.closest('li');
|
||||
if (!li) return;
|
||||
|
||||
if(e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
|
||||
if (e.metaKey || e.ctrlKey) { // для Mac проверяем Cmd, т.к. Ctrl + click там контекстное меню
|
||||
toggleSelect(li);
|
||||
} else if (e.shiftKey) {
|
||||
selectFromLast(li);
|
||||
|
@ -47,17 +46,17 @@ function ListSelect(options) {
|
|||
if (startElem == target) {
|
||||
// клик на том же элементе, что и раньше
|
||||
// это особый случай
|
||||
return;
|
||||
return;
|
||||
}
|
||||
|
||||
var isLastClickedBefore = startElem.compareDocumentPosition(target) & 4;
|
||||
|
||||
if (isLastClickedBefore) {
|
||||
for(var elem = startElem; elem != target; elem = elem.nextElementSibling) {
|
||||
for (var elem = startElem; elem != target; elem = elem.nextElementSibling) {
|
||||
elem.classList.add('selected');
|
||||
}
|
||||
} else {
|
||||
for(var elem = startElem; elem != target; elem = elem.previousElementSibling) {
|
||||
for (var elem = startElem; elem != target; elem = elem.previousElementSibling) {
|
||||
elem.classList.add('selected');
|
||||
}
|
||||
}
|
||||
|
@ -65,7 +64,7 @@ function ListSelect(options) {
|
|||
|
||||
function dispatchEvent() {
|
||||
var widgetEvent = new CustomEvent("select", {
|
||||
bubbles: true,
|
||||
bubbles: true,
|
||||
detail: getSelected()
|
||||
});
|
||||
elem.dispatchEvent(widgetEvent);
|
||||
|
@ -78,4 +77,4 @@ function ListSelect(options) {
|
|||
};
|
||||
|
||||
this.getSelected = getSelected;
|
||||
}
|
||||
}
|
|
@ -25,11 +25,11 @@ function CustomSelect(options) {
|
|||
elem.querySelector('.title').innerHTML = title;
|
||||
|
||||
var widgetEvent = new CustomEvent('select', {
|
||||
bubbles: true,
|
||||
bubbles: true,
|
||||
detail: {
|
||||
title: title,
|
||||
value: value
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
elem.dispatchEvent(widgetEvent);
|
||||
|
@ -53,4 +53,4 @@ function CustomSelect(options) {
|
|||
isOpen = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -38,11 +38,11 @@ function Slider(options) {
|
|||
var newLeft = clientX - shiftX - sliderCoords.left;
|
||||
|
||||
// курсор ушёл вне слайдера
|
||||
if(newLeft < 0) {
|
||||
if (newLeft < 0) {
|
||||
newLeft = 0;
|
||||
}
|
||||
var rightEdge = elem.offsetWidth - thumbElem.offsetWidth;
|
||||
if(newLeft > rightEdge) {
|
||||
if (newLeft > rightEdge) {
|
||||
newLeft = rightEdge;
|
||||
}
|
||||
|
||||
|
@ -59,7 +59,7 @@ function Slider(options) {
|
|||
}
|
||||
|
||||
function positionToValue(left) {
|
||||
return Math.round( left / pixelsPerValue);
|
||||
return Math.round(left / pixelsPerValue);
|
||||
}
|
||||
|
||||
function onDocumentMouseMove(e) {
|
||||
|
@ -85,4 +85,4 @@ function Slider(options) {
|
|||
}
|
||||
|
||||
this.setValue = setValue;
|
||||
}
|
||||
}
|
|
@ -7,7 +7,9 @@ function Menu(options) {
|
|||
}
|
||||
|
||||
function render() {
|
||||
var html = options.template({title: options.title});
|
||||
var html = options.template({
|
||||
title: options.title
|
||||
});
|
||||
|
||||
elem = document.createElement('div');
|
||||
elem.innerHTML = html;
|
||||
|
@ -32,8 +34,10 @@ function Menu(options) {
|
|||
|
||||
function renderItems() {
|
||||
if (elem.querySelector('ul')) return;
|
||||
|
||||
var listHtml = options.listTemplate({items: options.items});
|
||||
|
||||
var listHtml = options.listTemplate({
|
||||
items: options.items
|
||||
});
|
||||
elem.insertAdjacentHTML("beforeEnd", listHtml);
|
||||
}
|
||||
|
||||
|
@ -59,4 +63,4 @@ function Menu(options) {
|
|||
this.toggle = toggle;
|
||||
this.close = close;
|
||||
this.open = open;
|
||||
}
|
||||
}
|
|
@ -7,7 +7,9 @@ function Menu(options) {
|
|||
}
|
||||
|
||||
function render() {
|
||||
var html = options.template({title: options.title});
|
||||
var html = options.template({
|
||||
title: options.title
|
||||
});
|
||||
|
||||
elem = document.createElement('div');
|
||||
elem.innerHTML = html;
|
||||
|
@ -32,13 +34,15 @@ function Menu(options) {
|
|||
|
||||
function renderItems() {
|
||||
if (elem.querySelector('ul')) return;
|
||||
|
||||
var listHtml = options.listTemplate({items: options.items});
|
||||
|
||||
var listHtml = options.listTemplate({
|
||||
items: options.items
|
||||
});
|
||||
elem.insertAdjacentHTML("beforeEnd", listHtml);
|
||||
}
|
||||
|
||||
function select(link) {
|
||||
var widgetEvent = new CustomEvent("select", {
|
||||
var widgetEvent = new CustomEvent("select", {
|
||||
bubbles: true,
|
||||
detail: link.getAttribute('href').slice(1)
|
||||
});
|
||||
|
@ -63,4 +67,4 @@ function Menu(options) {
|
|||
this.toggle = toggle;
|
||||
this.close = close;
|
||||
this.open = open;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue