PageSourceSearch

https://www.flex.hk/wp-content/themes/betheme/js/menu.js?ver=20.5.2

js flex.hk collected 2026-09-29 12:45:53 UTC 2,449 bytes, 116 lines download raw bytes

1/**
2 * MuffinMenu 
3 * 
4 * Horizontal Multilevel Menu with WP MegaMenu Support 
5 * 
6 * 3.0 | Muffin Group
7 */
8
9(function( $ ){
10	"use strict";
11	
12	$.fn.mfnMenu = function( options ){
13
14		var menu = $(this);
15		
16		var defaults = {
17			addLast		: false,
18			arrows      : false,
19			delay       : 100,
20			hoverClass  : 'hover',
21			mobileInit	: 768,
22			responsive	: true
23		};
24		options = $.extend( defaults, options );
25		
26		
27		var init = function(){
28			
29			// add '.submenu' class
30			$( 'li:has(ul)', menu ).addClass( 'submenu' );
31			
32			// append mobile toggle button
33			$( 'li:has(ul)', menu ).append( '<span class="menu-toggle"></span>' );
34			
35			// add '.mfn-megamenu-parent' class
36			menu.children( 'li:has( ul.mfn-megamenu )' ).addClass( 'mfn-megamenu-parent' );	
37			
38			// add '.last-item' class
39			$( '.submenu ul li:last-child', menu ).addClass( 'last-item' );
40			
41			// add '.last' class
42			if( options.addLast ) {
43				$( '> li:last-child', menu ).addClass( 'last' )
44					.prev().addClass( 'last' );
45			}
46			
47			// appand submenu arrows
48			if( options.arrows ) {
49				$( 'li ul li:has(ul) > a', menu ).append( '<i class="menu-arrow icon-right-open"></i>' );
50			}
51
52		};
53		
54		
55		var doMenu = function(){
56
57			if( ( $(window).width() >= options.mobileInit ) || ( ! options.responsive ) ){
58				
59				// desktop --------------------------------
60
61				$( '> li, ul:not(.mfn-megamenu) li', menu ).hover(function() {
62					
63					$(this).stop(true,true).addClass( options.hoverClass );
64					
65					$(this).children( 'ul' ).stop(true,true).fadeIn( options.delay );
66					
67					
68				}, function(){
69					
70					$(this).stop(true,true).removeClass( options.hoverClass );
71					
72					$(this).children( 'ul' ).stop(true,true).fadeOut( options.delay );	
73					
74				});
75				
76			} else {
77
78				// mobile ---------------------------------
79				
80				$( 'li', menu ).unbind('hover');
81				
82				$( 'li > .menu-toggle', menu ).off('click').on('click', function(){
83	
84					var el = $(this).closest('li');
85					
86					if( el.hasClass( options.hoverClass ) ){
87	
88						el.removeClass( options.hoverClass )
89							.children('ul').stop(true,true).fadeOut( options.delay );			
90						
91					} else {
92		
93						el.addClass( options.hoverClass )
94							.children('ul').stop(true,true).fadeIn( options.delay );	
95	
96					}
97					
98				});
99				
100			}
101			
102		};
103		
104
105		$(window).bind( 'resize', doMenu );
106		
107		var __constructor = function(){
108			init();
109			doMenu();
110		};
111		
112		__constructor();
113
114	};
115
116})(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.