PageSourceSearch

https://www.wyatt.com/wp-content/themes/betheme-child/js/menu.js?ver=27.3.7

js wyatt.com collected 2026-10-02 10:37:14 UTC 3,772 bytes, 161 lines download raw bytes

1/**
2 * MuffinMenu
3 *
4 * Horizontal Multilevel Menu with WP MegaMenu Support
5 * 3.0 | Muffin Group
6 */
7
8(function($) {
9
10	/* globals jQuery */
11
12  "use strict";
13
14  $.fn.mfnMenu = function(options) {
15
16    var menu = $(this);
17
18    var defaults = {
19      addLast: false,
20      arrows: false,
21      delay: 100,
22      hoverClass: 'hover',
23      mobileInit: 768,
24      responsive: true
25    };
26    options = $.extend(defaults, options);
27
28
29    var init = function() {
30
31      // add '.submenu' class
32
33      $('li:has(ul)', menu).addClass('submenu');
34
35      // append mobile toggle button
36
37      $('li:has(ul)', menu).append('<span class="menu-toggle"></span>');
38
39      // add '.mfn-megamenu-parent' class
40
41      menu.children('li:has( ul.mfn-megamenu )').addClass('mfn-megamenu-parent');
42
43      // add '.last-item' class
44
45      $('.submenu ul li:last-child', menu).addClass('last-item');
46
47      // add '.last' class
48
49      if (options.addLast) {
50        $('> li:last-child', menu).addClass('last')
51          .prev().addClass('last');
52      }
53
54      // appand submenu arrows
55
56      if (options.arrows) {
57        $('li ul li:has(ul) > a', menu).append('<i class="menu-arrow icon-right-open"></i>');
58      }
59
60    };
61
62    var doMenu = function() {
63
64      if ((window.innerWidth >= options.mobileInit) || (!options.responsive)) {
65
66        // desktop
67
68        /*$('> li, ul:not(.mfn-megamenu) li', menu).on('mouseenter', function() {
69
70          $(this).stop(true, true).addClass(options.hoverClass);
71
72          $(this).children('ul').stop(true, true).fadeIn(options.delay);
73
74
75        }).on('mouseleave', function() {
76
77          $(this).stop(true, true).removeClass(options.hoverClass);
78
79          $(this).children('ul').stop(true, true).fadeOut(options.delay);
80
81        });*/
82		$('li', menu).off('hover');
83		$('li > a', menu).off('click').on('click', function(e) {
84		  
85		  var el = $(this).closest('li');
86		  el.siblings().removeClass(options.hoverClass).children('ul').stop(true, true).fadeOut(options.delay);  
87		  el.siblings().children('.menu-overlap').remove();
88		  el.siblings().addClass('not-active');
89
90		  if(el.hasClass("mfn-megamenu-parent")) {
91			  e.preventDefault();
92			  			  
93			  if (el.hasClass(options.hoverClass)) {
94				el.removeClass(options.hoverClass)
95				  .children('ul').stop(true, true).fadeOut(options.delay);
96				el.children('.menu-overlap').remove();
97				el.siblings().removeClass('not-active');	
98			  } else {
99				el.addClass(options.hoverClass)
100				  .children('ul').stop(true, true).fadeIn(options.delay);
101				el.removeClass('not-active');
102				
103				  var close_link = $("<div class='menu-overlap'></div>");
104				  el.append(close_link);
105				  el.children('.menu-overlap').each(function()
106				  {
107					$(this).click(function() { // outside click					
108						$('li',menu)
109						.siblings()
110						.removeClass(options.hoverClass).children('ul').stop(true, true).fadeOut(options.delay);
111					
112						$('li',menu).siblings().children('.menu-overlap').remove();
113						$('li',menu).siblings().removeClass('not-active');
114					});
115				  });
116			  
117			  }
118		  }
119			  
120        });
121
122      } else {
123
124        // mobile
125
126        $('li', menu).off('hover');
127
128        $('li > .menu-toggle', menu).off('click').on('click', function() {
129
130          var el = $(this).closest('li');
131
132          if (el.hasClass(options.hoverClass)) {
133
134            el.removeClass(options.hoverClass)
135              .children('ul').stop(true, true).fadeOut(options.delay);
136
137          } else {
138
139            el.addClass(options.hoverClass)
140              .children('ul').stop(true, true).fadeIn(options.delay);
141
142          }
143
144        });
145
146      }
147
148    };
149
150    $(window).on('resize', doMenu);
151
152    var __constructor = function() {
153      init();
154      doMenu();
155    };
156
157    __constructor();
158
159  };
160
161})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.