hopglass/lib/tabs.js

64 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-05-27 23:59:01 +02:00
define(function () {
"use strict";
2015-03-26 00:33:11 +01:00
return function () {
var self = this;
2015-03-26 00:33:11 +01:00
var tabs = document.createElement("ul");
tabs.classList.add("tabs");
2015-03-26 00:33:11 +01:00
var container = document.createElement("div");
2015-03-26 00:33:11 +01:00
2015-03-29 21:44:05 +02:00
function gotoTab(li) {
for (var i = 0; i < tabs.children.length; i++) {
tabs.children[i].classList.remove("visible");
}
while (container.firstChild) {
container.removeChild(container.firstChild);
}
2015-03-26 00:33:11 +01:00
li.classList.add("visible");
var tab = document.createElement("div");
tab.classList.add("tab");
container.appendChild(tab);
li.child.render(tab);
2015-03-29 21:44:05 +02:00
}
function switchTab() {
gotoTab(this);
2015-03-26 00:33:11 +01:00
return false;
2015-03-26 00:33:11 +01:00
}
self.add = function (title, d) {
var li = document.createElement("li");
li.textContent = title;
li.onclick = switchTab;
li.child = d;
tabs.appendChild(li);
var anyVisible = false;
for (var i = 0; i < tabs.children.length; i++) {
if (tabs.children[i].classList.contains("visible")) {
anyVisible = true;
break;
}
}
if (!anyVisible) {
gotoTab(li);
}
};
2015-03-26 00:33:11 +01:00
self.render = function (el) {
el.appendChild(tabs);
el.appendChild(container);
};
2015-03-26 00:33:11 +01:00
return self;
};
});