-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjquery.multiplelevelmenu.min.js
More file actions
1 lines (1 loc) · 1.94 KB
/
jquery.multiplelevelmenu.min.js
File metadata and controls
1 lines (1 loc) · 1.94 KB
1
!function(a){a.fn.multipleLevelMenu=function(b){function c(){i=window.innerWidth,(g.disableAbove===!1||g.disableAbove>i)&&(g.disableBelow===!1||g.disableBelow<i)?f=!0:(f=!1,h.removeClass(g.activeClass),a(g.listSelector,h).removeClass(g.activeClass),g.wrapperElement.removeClass(g.activeClass),g.triggerElement.removeClass(g.activeClass))}function d(){h.addClass(g.activeClass),g.wrapperElement.addClass(g.activeClass).bind(g.eventType,e),g.triggerElement.addClass(g.activeClass)}function e(){h.removeClass(g.activeClass),g.wrapperElement.removeClass(g.activeClass).unbind(g.eventType),g.triggerElement.removeClass(g.activeClass),g.preserveState||a(g.listSelector,h).removeClass(g.activeClass)}var f,g=a.extend({triggerElement:a(".multiple-level-menu_trigger"),closeElement:a(".multiple-level-menu_close"),wrapperElement:a(".multiple-level-menu_wrapper"),listSelector:"ul",listItemSelector:"li",activeClass:"is-active",disableAbove:!1,disableBelow:!1,preserveState:!1,closeOnNavigation:!0,eventType:"click"},b),h=this,i=(a("body"),window.innerWidth);return c(),a(window).bind("resize",function(){c()}),g.triggerElement.bind(g.eventType,function(a){a.stopPropagation(),f&&(h.hasClass(g.activeClass)?e():d())}),h.bind(g.eventType,function(a){a.stopPropagation()}),g.closeElement.bind(g.eventType,function(b){if(b.stopPropagation(),f){var c,d=a(this);d.parent(g.listSelector).hasClass(g.activeClass)?c=d.parent(g.listSelector):(c=d.parents("nav"),g.wrapperElement.removeClass(g.activeClass),g.triggerElement.removeClass(g.activeClass)),c.removeClass("is-active")}}),a(g.listItemSelector).each(function(){var b=a(this);0!==a("ul",b).length?a("> a",b).bind(g.eventType,function(a){a.preventDefault()}):g.closeOnNavigation&&a("> a",b).bind(g.eventType,function(){e()})}),a(g.listItemSelector,h).bind(g.eventType,function(b){if(b.stopPropagation(),f){var c=a(this),d=a(g.listSelector,c);d.length>0&&(d.hasClass(g.activeClass)?d.removeClass(g.activeClass):d.addClass(g.activeClass))}}),h}}(jQuery);