tabs.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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 gotoTab(li) {
  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. li.classList.add("visible")
  14. li.tab.classList.add("visible")
  15. }
  16. function switchTab() {
  17. gotoTab(this)
  18. return false
  19. }
  20. self.add = function (title, d) {
  21. var tab = document.createElement("div")
  22. tab.classList.add("tab")
  23. container.appendChild(tab)
  24. var li = document.createElement("li")
  25. li.textContent = title
  26. li.onclick = switchTab
  27. tab.li = li
  28. li.tab = tab
  29. tabs.appendChild(li)
  30. var anyVisible = false
  31. for (var i = 0; i < tabs.children.length; i++)
  32. if (tabs.children[i].classList.contains("visible")) {
  33. anyVisible = true
  34. break
  35. }
  36. if (!anyVisible) {
  37. tab.classList.add("visible")
  38. li.classList.add("visible")
  39. }
  40. d.render(tab)
  41. }
  42. self.render = function (el) {
  43. el.appendChild(tabs)
  44. el.appendChild(container)
  45. }
  46. return self
  47. }
  48. })