ligerMenuBar.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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.ligerMenuBar = function (options)
  12. {
  13. return $.ligerui.run.call(this, "ligerMenuBar", arguments);
  14. };
  15. $.fn.ligerGetMenuBarManager = function ()
  16. {
  17. return $.ligerui.run.call(this, "ligerGetMenuBarManager", arguments);
  18. };
  19. $.ligerDefaults.MenuBar = {};
  20. $.ligerMethos.MenuBar = {};
  21. $.ligerui.controls.MenuBar = function (element, options)
  22. {
  23. $.ligerui.controls.MenuBar.base.constructor.call(this, element, options);
  24. };
  25. $.ligerui.controls.MenuBar.ligerExtend($.ligerui.core.UIComponent, {
  26. __getType: function ()
  27. {
  28. return 'MenuBar';
  29. },
  30. __idPrev: function ()
  31. {
  32. return 'MenuBar';
  33. },
  34. _extendMethods: function ()
  35. {
  36. return $.ligerMethos.MenuBar;
  37. },
  38. _render: function ()
  39. {
  40. var g = this, p = this.options;
  41. g.menubar = $(this.element);
  42. if (!g.menubar.hasClass("l-menubar")) g.menubar.addClass("l-menubar");
  43. if (p && p.items)
  44. {
  45. $(p.items).each(function (i, item)
  46. {
  47. g.addItem(item);
  48. });
  49. }
  50. $(document).click(function ()
  51. {
  52. $(".l-panel-btn-selected", g.menubar).removeClass("l-panel-btn-selected");
  53. });
  54. g.set(p);
  55. },
  56. addItem: function (item)
  57. {
  58. var g = this, p = this.options;
  59. var ditem = $('<div class="l-menubar-item l-panel-btn"><span></span><div class="l-panel-btn-l"></div><div class="l-panel-btn-r"></div><div class="l-menubar-item-down"></div></div>');
  60. g.menubar.append(ditem);
  61. item.id && ditem.attr("menubarid", item.id);
  62. item.text && $("span:first", ditem).html(item.text);
  63. item.disable && ditem.addClass("l-menubar-item-disable");
  64. item.click && ditem.click(function () { item.click(item); });
  65. if (item.menu)
  66. {
  67. var menu = $.ligerMenu(item.menu);
  68. ditem.hover(function ()
  69. {
  70. g.actionMenu && g.actionMenu.hide();
  71. var left = $(this).offset().left;
  72. var top = $(this).offset().top + $(this).height();
  73. menu.show({ top: top, left: left });
  74. g.actionMenu = menu;
  75. $(this).addClass("l-panel-btn-over l-panel-btn-selected").siblings(".l-menubar-item").removeClass("l-panel-btn-selected");
  76. }, function ()
  77. {
  78. $(this).removeClass("l-panel-btn-over");
  79. });
  80. }
  81. else
  82. {
  83. ditem.hover(function ()
  84. {
  85. $(this).addClass("l-panel-btn-over");
  86. }, function ()
  87. {
  88. $(this).removeClass("l-panel-btn-over");
  89. });
  90. $(".l-menubar-item-down", ditem).remove();
  91. }
  92. }
  93. });
  94. })(jQuery);