require([ 'jquery' ], function ($) { 'use strict'; const menuMobile = { init: function () { this.$header = $('.js-head'); this.headerMenuMobile(); this.toggleSubmenu(); }, headerMenuMobile: function () { const that = this; that.$btnMenuTrigger = $('.js-trigger-nav-main'); // Toggle menu that.$btnMenuTrigger.on('click', function (e) { e.preventDefault(); $(this).toggleClass('is-active'); that.$header.toggleClass('is-menu-opened'); }); }, toggleSubmenu: function () { const $trigger = $('.js-trigger-submenu'), $triggerNestedSubmenu = $('.js-trigger-submenu-2'); $trigger.on('click', function (e) { e.preventDefault(); e.stopPropagation(); const $that = $(this); if (!$that.parent().hasClass('is-submenu-opened') || !$that.hasClass('is-active')) { $trigger.parent().removeClass('is-submenu-opened'); $trigger.removeClass('is-active'); $that.parent().addClass('is-submenu-opened'); $that.addClass('is-active'); } else { $that.parent().removeClass('is-submenu-opened'); $that.removeClass('is-active'); } }); $triggerNestedSubmenu.on('click', function (e) { e.preventDefault(); e.stopPropagation(); const $that = $(this); if (!$that.parent().hasClass('is-submenu-opened') || !$that.hasClass('is-active')) { $triggerNestedSubmenu.parent().removeClass('is-submenu-opened'); $triggerNestedSubmenu.removeClass('is-active'); $that.parent().addClass('is-submenu-opened'); $that.addClass('is-active'); } else { $that.parent().removeClass('is-submenu-opened'); $that.removeClass('is-active'); } }); } }; menuMobile.init(); });