tabs.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. define([], function () {
  2. return function () {
  3. var self = this
  4. var tabs = document.createElement("ul")
  5. tabs.classList.add("tabs")
  6. var container = document.createElement("div")
  7. function switchTab(ev) {
  8. for (var i = 0; i < tabs.children.length; i++) {
  9. var el = tabs.children[i]
  10. el.classList.remove("visible")
  11. el.tab.classList.remove("visible")
  12. }
  13. this.classList.add("visible")
  14. this.tab.classList.add("visible")
  15. return false
  16. }
  17. self.add = function (title, d) {
  18. var tab = document.createElement("div")
  19. tab.classList.add("tab")
  20. container.appendChild(tab)
  21. var li = document.createElement("li")
  22. li.textContent = title
  23. li.onclick = switchTab
  24. tab.li = li
  25. li.tab = tab
  26. tabs.appendChild(li)
  27. var anyVisible = false
  28. for (var i = 0; i < tabs.children.length; i++)
  29. if (tabs.children[i].classList.contains("visible")) {
  30. anyVisible = true
  31. break
  32. }
  33. if (!anyVisible) {
  34. tab.classList.add("visible")
  35. li.classList.add("visible")
  36. }
  37. d.render(tab)
  38. }
  39. self.render = function (el) {
  40. el.appendChild(tabs)
  41. el.appendChild(container)
  42. }
  43. return self
  44. }
  45. })