jQuery(document).ready(function($) { $('.dexp-dropdown ul li a').data({click:true}); $('.dexp-dropdown a.active').each(function() { $(this).parents('li.expanded').addClass('active'); }); $('.dexp-dropdown li.expanded').each(function() { var $this = $(this), $toggle = $(''); $toggle.click(function() { $(this).toggleClass('fa-angle-right fa-angle-down'); $this.find('>ul,>.dexp-menu-mega').toggleClass('menu-open'); }); $this.append($toggle); }); $('.dexp-dropdown .menu-attach-block-wrapper').parent('li').addClass('block-attach'); $('.dexp-menu-toggler').click(function() { var $menu = $($(this).data('target')); if ($menu != null) { $menu.toggleClass('mobile-open'); } return false; }); $('.dexp-dropdown ul li a').on('touchstart',function() { var $this = $(this),$li = $(this).parent(); if($li.find('ul,.dexp-menu-mega').length > 0){ $this.data({ click: $this.data('click').toString() == 'true'?false:true }); } $('.dexp-dropdown ul li a').not($this).data({click:true}); /*Mobile*/ if($this.data('click') == false){ $li.find('> .menu-toggler').trigger('click'); } return $this.data('click'); }); $('.dexp-dropdown ul li').hover(function() { var container_width = $('.container').width(); var $submenu = $(this).find('>ul,>.dexp-menu-mega').not('.container'), ww = $(window).width(), innerw = ww - (ww - container_width) / 2; if ($submenu.length === 0) return; /*RTL*/ if($('body').hasClass('rtl')){ var limit = (ww - container_width)/2; var offsetX = limit-$submenu.offset().left; if(offsetX > 0){ var transformX = offsetX + 'px'; $submenu.css({ transform: 'translateX('+transformX+')' }); } }else{ /*LTR*/ var offsetX = $submenu.offset().left + $submenu.width() - innerw; if (offsetX > 0) { var transformX = 0 - offsetX + 'px'; $submenu.css({ transform: 'translateX('+transformX+')' }); } } }, function() { var $submenu = $(this).find('>ul,>.dexp-menu-mega'); if ($submenu.length === 0) return; $submenu.css({ transform: 'translateX(0)' }); }); $('.dexp-dropdown .container').each(function(){ $(this).parent('li').addClass('dexp-static') }); });