Revert "datatable: simplify and cleanup some code" - jscancer - Javascript crap… | |
git clone git://git.codemadness.org/jscancer | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit c1bcedb1c1fc7c5869121f632a5c2ce5c369ae4a | |
parent 75b7571cde3f25490a3042e346f508a4389bcba6 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Thu, 17 Aug 2017 19:04:01 +0200 | |
Revert "datatable: simplify and cleanup some code" | |
This reverts commit 8f13ca642d42f2de56679e408389922c9f06f214. | |
Diffstat: | |
M datatable/datatable.js | 59 ++++++++++++++++++++---------… | |
1 file changed, 39 insertions(+), 20 deletions(-) | |
--- | |
diff --git a/datatable/datatable.js b/datatable/datatable.js | |
@@ -8,10 +8,16 @@ function datatable_sort_default(x, y) { | |
} | |
function datatable_init(el) { | |
- var thead = el.tHead, | |
- tbody = el.tBodies[0]; | |
- var ths = thead.children[0].children, | |
- cols = []; | |
+ var thead = el.getElementsByTagName("thead"); | |
+ if (!thead.length) | |
+ return null; | |
+ var tbody = el.getElementsByTagName("tbody"); | |
+ if (!tbody.length) | |
+ return null; | |
+ var ths = thead[0].children[0].children; | |
+ if (!ths.length) | |
+ return null; | |
+ var cols = []; | |
for (var i = 0; i < ths.length; i++) | |
cols.push({ | |
filterable: ["1", "true"].indexOf(ths[i].getAttribute(… | |
@@ -21,9 +27,9 @@ function datatable_init(el) { | |
}); | |
var d = { | |
table: el, | |
- thead: thead, | |
+ thead: thead[0], | |
ths: ths, | |
- tbody: tbody, | |
+ tbody: tbody[0], | |
cols: cols, | |
sort: [], // sort options: [colidx, order (ASC = 0, DESC = 1)… | |
lazyscroll: ["1", "true"].indexOf(el.getAttribute("data-lazysc… | |
@@ -34,32 +40,45 @@ function datatable_init(el) { | |
if (d.lazyscroll) { | |
var bodytable = document.createElement("table"); | |
bodytable.className = el.className; | |
- bodytable.cellSpacing = bodytable.cellPadding = bodytable.bord… | |
- var headerstable = bodytable.cloneNode(true); | |
+ bodytable.setAttribute("cellspacing", "0"); | |
+ bodytable.setAttribute("cellpadding", "0"); | |
+ bodytable.setAttribute("border", "0"); | |
- var elthead = document.createElement("thead"), | |
- tr = thead.children[0].cloneNode(true); | |
- d.ths = tr.children; // set new columns (for sorting etc).. | |
+ var tr = document.createElement("tr"); | |
+ for (var i = 0; i < ths.length; i++) { | |
+ var th = ths[i].cloneNode(true); | |
+ th.innerHTML = ""; | |
+ tr.appendChild(th); | |
+ } | |
+ var bodythead = document.createElement("thead"); | |
+ bodythead.appendChild(tr); | |
+ | |
+ tr = document.createElement("tr"); | |
+ var newths = []; | |
+ for (var i = 0; i < ths.length; i++) | |
+ newths.push(tr.appendChild(ths[i].cloneNode(true))); | |
+ d.ths = newths; // set new columns (for sorting etc).. | |
+ var elthead = document.createElement("thead"); | |
elthead.appendChild(tr); | |
+ var headerstable = document.createElement("table"); | |
+ headerstable.setAttribute("cellspacing", "0"); | |
+ headerstable.setAttribute("cellpadding", "0"); | |
+ headerstable.setAttribute("border", "0"); | |
+ headerstable.className = el.className; | |
headerstable.appendChild(elthead); | |
- tr = tr.cloneNode(true); | |
- for (var i = 0; i < tr.children.length; i++) | |
- tr.children[i].innerHTML = ""; | |
- var bodythead = document.createElement("thead"); | |
- bodythead.appendChild(tr); | |
- bodytable.appendChild(bodythead); | |
- | |
var headersel = document.createElement("div"); | |
headersel.className = "datatable-lazyscroll-headers"; | |
headersel.appendChild(headerstable); | |
- var bodyel = headersel.cloneNode(false); | |
+ bodytable.appendChild(bodythead); | |
+ | |
+ var bodyel = document.createElement("div"); | |
bodyel.className = "datatable-lazyscroll-body"; | |
bodyel.appendChild(bodytable); | |
- var containerel = headersel.cloneNode(false); | |
+ var containerel = document.createElement("div"); | |
containerel.className = "datatable-lazyscroll-container"; | |
containerel.appendChild(headersel); | |
containerel.appendChild(bodyel); |