sub_menu.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. /**
  3. *
  4. *
  5. * @author Mai
  6. * @date
  7. * @version
  8. */
  9. (function($){
  10. $.subMenu = function (setting) {
  11. const menu = $(setting.menu), miniMenu = $(setting.miniMenu);
  12. const toMenu = $(setting.toMenu), toMiniMenu = $(setting.toMiniMenu);
  13. const showMenu = function () {
  14. menu.show();
  15. miniMenu.removeClass('d-flex').hide();
  16. setting.callback({mini: false});
  17. };
  18. const showMiniMenu = function () {
  19. menu.hide();
  20. miniMenu.addClass('d-flex').show();
  21. setting.callback({mini: true});
  22. };
  23. const menuType = setting.key ? getLocalCache(setting.key) : null;
  24. if (menuType && menuType === 'mini-menu') {
  25. showMiniMenu();
  26. } else {
  27. showMenu();
  28. }
  29. toMenu.click(function () {
  30. showMenu();
  31. if (setting.key) {
  32. setLocalCache(setting.key, 'menu');
  33. }
  34. });
  35. toMiniMenu.click(function () {
  36. showMiniMenu();
  37. if (setting.key) {
  38. setLocalCache(setting.key, 'miniMenu');
  39. }
  40. });
  41. miniMenu.mouseenter(function () {
  42. $(setting.miniMenuList).show();
  43. });
  44. miniMenu.mouseleave(function () {
  45. $(setting.miniMenuList).hide();
  46. });
  47. }
  48. })(jQuery);