PageSourceSearch

https://www.schoolsportaustralia.edu.au/wp-content/themes/ssa/js/menu.js?ver=7.1.2

js schoolsportaustralia.edu.au collected 2026-10-04 22:33:47 UTC 10,910 bytes, 247 lines download raw bytes

1/**
2 * Create an anonymous function to avoid library conflicts
3 */
4(function($) {
5    /**
6     * Add our plugin to the jQuery.fn object
7     */
8    $.fn.responsiveMenu = function(options) {
9        /**
10         * Define some default settings
11         */
12
13        $.fn.responsiveMenu.defaultOptions = {
14            "menuIcon_text": '',
15			"menuslide_overlap":false,
16            "menuslide_push":false,
17            "menuslide_direction":''
18        };
19        /**
20         * Merge the runtime options with the default settings
21         */
22        var options = $.extend({}, $.fn.responsiveMenu.defaultOptions, options);
23        /**
24         * Iterate through the collection of elements and
25         * return the object to preserve method chaining
26         */
27        return this.each(function(i) {
28            var menuobj = $(this);
29            var mobileSubMenu;
30            var subMenuArrows;
31            var mobFlag = false;
32            var deskFlag = false;
33            var defaultMenu = false;
34            createMobileStructure(menuobj);
35            mobileMenuInit(menuobj);
36
37            function removeDesktopMenu(menuobj) {
38                menuobj.removeClass('desk');
39                mobileSubMenu.next().stop(true, true).slideUp();
40                subMenuArrows.removeClass('up');
41                if(defaultMenu){
42                    menuobj.slideUp();
43                }
44                menuobj.find(".menu-icon").removeClass('active');
45            }
46
47            function createMobileStructure(menuobj) {
48                if (menuobj.prev('.menu-icon').length == 0) {
49                    menuobj.wrapAll('<div class="enumenu_container"></div>');
50                    //$('<div class="menu-icon">' + options.menuIcon_text + '</div>').insertBefore(menuobj);
51                    $('<div class="menu-icon"> <div class="menu-box"><span></span><span></span><span></span> </div>' + options.menuIcon_text + '</div>').insertBefore(menuobj);
52                    //menuobj.find('ul').prev('a').addClass('menubelow');
53                    $("> li > a", menuobj).addClass("firstLevel");
54                    menuobj.find("li").each(function() {
55                        if ($(this).children("ul").length || $(this).children("div").length) {
56                            $(this).addClass("has-children");
57                            $(this).children('a').addClass('menubelow');
58                        }
59                    });
60                }
61                mobileSubMenu = menuobj.find('a.menubelow');
62                if (menuobj.find('.arrow').length == 0) {
63                    mobileSubMenu.each(function() {
64                        $(this).closest('li').prepend('<span class="arrow"></span>');
65                        $(this).next().addClass("sb-menu");
66                    });
67                    subMenuArrows = menuobj.find('.arrow');
68                }
69                
70                
71                if(options.menuslide_overlap){
72                    $('body').addClass('menuOverlap');
73                   
74                } else if(options.menuslide_push){
75                    $('body').addClass('menuslide_push');
76                    
77                }
78                if((options.menuslide_overlap || options.menuslide_push) && options.menuslide_direction==""){
79                    $('body').addClass('slidemenuRight');
80                }
81                if(options.menuslide_direction=="left"){
82                    $('body').addClass('slidemenuLeft');
83                    
84                }else if(options.menuslide_direction=="right"){
85                    $('body').addClass('slidemenuRight');
86                    
87                }
88            }
89
90            function bindClickonMobilemenu(menuobj) {
91                menuobj.find('.arrow').on('touchstart click', function(e) {
92                    e.stopImmediatePropagation();
93                    e.preventDefault();
94                    var submenu = $(this).closest('li').children('.sb-menu');
95                    var sibilingsOfCurrent_obj = $(this).closest('li').siblings();
96                    var this_parentLi = $(this).closest('li');
97                    if (menuobj.prev(".menu-icon").is(":visible")) {
98                        if (submenu.length > 0) {
99                            sibilingsOfCurrent_obj.find('.sb-menu').stop(true, true).slide
99Up(); // comment to close
100                            sibilingsOfCurrent_obj.find('.sb-menu').each(function() {
101                                $(this).closest('li').find('>span').removeClass('up'); // 
102                            });
103                        }
104                        if (!submenu.is(':visible')) {
105                            submenu.find('.sb-menu').each(function() {
106                                $(this).stop().slideUp();
107                                $(this).closest('li').find('span').removeClass('up')
108                            });
109                            submenu.stop().slideDown();
110                            this_parentLi.find('>span').addClass('up');
111                        } else {
112                            submenu.slideUp();
113                            this_parentLi.find('>span').removeClass('up');
114                        }
115                    }
116                });
117            }
118
119            function removeMobileMenu(menuobj) {
120                menuobj.find('.menubelow').each(function() {
121                    $(this).removeAttr('style');
122                    $(this).next().removeAttr('style');
123                });
124                menuobj.find('.arrow').remove();
125                menuobj.prev(".menu-icon").removeClass('active');
126                menuobj.addClass('desk').removeAttr("style");
127                menuobj.removeAttr("style");
128                $("body").removeClass("menu-open");
129                deskFlag = false;
130            }
131
132            $(window).resize(function(e) {
133                mobileMenuInit(menuobj);
134            });
135
136            function mobileMenuInit(menuobj) {
137                if((options.menuslide_overlap == false && options.menuslide_push == false) || (options.menuslide_overlap == true && options.menuslide_push == true)){
138                   defaultMenu = true; 
139                }
140                if (menuobj.prev(".menu-icon").is(":visible")) {
141                    if (!mobFlag) {
142                        removeDesktopMenu(menuobj);
143                        createMobileStructure(menuobj);
144                        bindClickonMobilemenu(menuobj);
145                        mobFlag = true;
146                        deskFlag = false;
147                        menuobj.removeClass('desk');
148                        $('body').removeClass('desk');
149                        menuobj.addClass('mob');
150                        $('body').addClass('mob');
151                    }
152                } else {
153                    if (!deskFlag) {
154                        removeMobileMenu(menuobj);
155                        mobFlag = false;
156                        deskFlag = true;
157                        menuobj.removeClass('mob');
158                        $('body').removeClass('mob');
159                        menuobj.addClass('desk');
160                        $('body').addClass('desk');
161
162                    }
163                }
164            }
165            // Toggle menu
166            menuobj.prev(".menu-icon").on('click', function(e){
167            //$(document).on('click', ".menu-icon", function(e) {
168                e.stopPropagation();
169                e.preventDefault();
170                if ($(this).hasClass('active')) {
171                    closeMobileMenu(menuobj);
172                } else {
173                    if(defaultMenu){
174                        $(this).next().slideDown();
175                    }
176                    $(this).addClass("active");
177                    $("body").addClass("menu-open");
178                }
179            });
180            $('body').on('click touchstart', function(e) {
181                if (menuobj.prev(".menu-icon").is(":visible")) {
182                    if ($(e.target).closest(".enumenu_container").length == 0 && !$(e.target).hasClass('active')) {
183                        closeMobileMenu(menuobj);
184                    }
185                }
186            });
187
188            function closeMobileMenu(menuobj) {
189                $("body").removeClass("menu-open");
190                if(defaultMenu){
191                    menuobj.stop().slideUp();
192                }
193                menuobj.prev(".menu-icon").removeClass('active');
194                menuobj.find('.arrow').removeClass('up');
195                menuobj.find('.sb-menu').stop(true, true).slideUp();
196            }
197
198                if ( 'ontouchstart' in window ) {
199
200                    //$(".enumenu_ul > li > a, .enumenu_ul.desk li > ul > li > a").click(function(e) {
201                    menuobj.find("a").click(function(e) {
202                            if (!$(this).hasClass("link") && !$("body").hasClass("mob") && $(this).next().length > 0) {
203                                e.preventDefault();
204                                if ($(this).hasClass("firstLevel")) {
205                                    menuobj.find("a").removeClass("link");
206                                    menuobj.find("a").parent().removeClass("hover");
207                                }
208                                $(this).addClass("link");
209                                $(this).parent().addClass('hover');
210                            }
211                    })
212                    $('body').on('click touchstart', function(e) {
213                        if ($(e.target).closest(".enumenu_container").length == 0) {
214                            menuobj.find("a").each(function(){
215                                $(this).removeClass("link");
216                                $(this).parent().removeClass("hover");
217                            });
218                        }
219                    });
220                    /*$("body > div").on('click', function(e) {
221                        if ($(e.target).closest(".enumenu_container").length == 0) {
222                            menuobj.find("a").each(function(){
223                                $(this).removeClass("link");
224                                $(this).parent().removeClass("hover");
225                            });
226                            
227                        }
228                    });*/
229                } else {
230                    
231                    menuobj.find("li").mouseenter(function() {
232                        $(this).addClass('hover');
233                    });
234                    menuobj.find("li").mouseleave(function() {
235                        $(this).removeClass('hover');
236                    });
237                    
238                    $(".menu-icon").on("mouseenter", function(){
239                         $(this).addClass('hover');
240                    }).mouseleave(function() {
241                        $(this).removeClass('hover');
242                    });
243                }
244            
245        });
246    };
247})(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.