ligerEasyTab.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * jQuery ligerUI 1.1.9
  3. *
  4. * http://ligerui.com
  5. *
  6. * Author daomi 2012 [ gd_star@163.com ]
  7. *
  8. */
  9. (function ($)
  10. {
  11. $.fn.ligerEasyTab = function ()
  12. {
  13. return $.ligerui.run.call(this, "ligerEasyTab", arguments);
  14. };
  15. $.fn.ligerGetEasyTabManager = function ()
  16. {
  17. return $.ligerui.run.call(this, "ligerGetEasyTabManager", arguments);
  18. };
  19. $.ligerDefaults.EasyTab = {};
  20. $.ligerMethos.EasyTab = {};
  21. $.ligerui.controls.EasyTab = function (element, options)
  22. {
  23. $.ligerui.controls.EasyTab.base.constructor.call(this, element, options);
  24. };
  25. $.ligerui.controls.EasyTab.ligerExtend($.ligerui.core.UIComponent, {
  26. __getType: function ()
  27. {
  28. return 'EasyTab';
  29. },
  30. __idPrev: function ()
  31. {
  32. return 'EasyTab';
  33. },
  34. _extendMethods: function ()
  35. {
  36. return $.ligerMethos.EasyTab;
  37. },
  38. _render: function ()
  39. {
  40. var g = this, p = this.options;
  41. g.tabs = $(this.element);
  42. g.tabs.addClass("l-easytab");
  43. var selectedIndex = 0;
  44. if ($("> div[lselected=true]", g.tabs).length > 0)
  45. selectedIndex = $("> div", g.tabs).index($("> div[lselected=true]", g.tabs));
  46. g.tabs.ul = $('<ul class="l-easytab-header"></ul>');
  47. $("> div", g.tabs).each(function (i, box)
  48. {
  49. var li = $('<li><span></span></li>');
  50. if (i == selectedIndex)
  51. $("span", li).addClass("l-selected");
  52. if ($(box).attr("title"))
  53. $("span", li).html($(box).attr("title"));
  54. g.tabs.ul.append(li);
  55. if (!$(box).hasClass("l-easytab-panelbox")) $(box).addClass("l-easytab-panelbox");
  56. });
  57. g.tabs.ul.prependTo(g.tabs);
  58. //init
  59. $(".l-easytab-panelbox:eq(" + selectedIndex + ")", g.tabs).show().siblings(".l-easytab-panelbox").hide();
  60. //add even
  61. $("> ul:first span", g.tabs).click(function ()
  62. {
  63. if ($(this).hasClass("l-selected")) return;
  64. var i = $("> ul:first span", g.tabs).index(this);
  65. $(this).addClass("l-selected").parent().siblings().find("span.l-selected").removeClass("l-selected");
  66. $(".l-easytab-panelbox:eq(" + i + ")", g.tabs).show().siblings(".l-easytab-panelbox").hide();
  67. }).not("l-selected").hover(function ()
  68. {
  69. $(this).addClass("l-over");
  70. }, function ()
  71. {
  72. $(this).removeClass("l-over");
  73. });
  74. g.set(p);
  75. }
  76. });
  77. })(jQuery);