hopglass/lib/tabs.js

52 lines
1 KiB
JavaScript
Raw Normal View History

2015-03-26 00:33:11 +01:00
define([], function () {
return function () {
var self = this
var tabs = document.createElement("ul")
tabs.classList.add("tabs")
var container = document.createElement("div")
2015-03-29 21:44:05 +02:00
function gotoTab(li) {
2015-07-08 21:28:56 +02:00
var visible = li.classList.contains("visible")
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
2015-07-08 21:28:56 +02:00
if (visible)
return
2015-03-29 21:44:05 +02: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
}
self.add = function (title, d) {
var li = document.createElement("li")
li.textContent = title
li.onclick = switchTab
li.child = d
2015-03-26 00:33:11 +01:00
tabs.appendChild(li)
}
self.render = function (el) {
el.appendChild(tabs)
el.appendChild(container)
}
return self
}
})