I have two links with two different megamenu settings:
The
toggleuses aclickeffect along with a3 column widthdropdown (column-width-3,mode-click).The
Productslink uses ahovereffect along with afull width column(column-justify,mode-hover).
Source code:
if ($("uk-navbar-container").has(".mega-menu-active")) {
var get_id = $(".uk-navbar-dropdown-grid").prop('id');
// console.log( get_id );
if ($('#' + get_id).hasClass("column-justify")) {
if ($('#' + get_id).hasClass("mode-click")) {
$('.uk-navbar-dropdown-grid').wrap('<div class="uk-navbar-dropdown" uk-drop="mode:click;"></div>');
} else {
$('.uk-navbar-dropdown-grid').wrap('<div class="uk-navbar-dropdown" uk-drop="..."></div>');
}
} else {
if ($('#' + get_id).hasClass("mode-click")) {
$('.uk-navbar-dropdown-grid').wrap('<div class="uk-navbar-dropdown" uk-drop="mode:click;"></div>');
} else {
$('.uk-navbar-dropdown-grid').wrap('<div class="uk-navbar-dropdown" uk-drop="..."></div>');
}
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="uk-navbar-left">
<ul class="uk-navbar-nav">
<a href="#" class="uk-navbar-toggle mega-menu-active"><span class="toggle-icon"></span></a>
<div class="uk-navbar-dropdown uk-navbar-dropdown-width-3" uk-drop="...">
<div id="megamenu-954" class="uk-navbar-dropdown-grid uk-grid column-width-3 mode-click megamenu-954">
<div class="uk-width-1-3">
<ul class="uk-navbar-dropdown-nav">
<li>...</li>
<li>...</li>
</ul>
</div>
</div>
</div>
<li id="menu-item-950" class="mega-menu-active">
<a href="#">Products</a>
<div class="uk-navbar-dropdown" uk-drop="...">
<div id="megamenu-946" class="uk-navbar-dropdown-grid column-justify mode-hover megamenu-946">
<div class="uk-width-1-3">
<ul class="uk-nav uk-navbar-dropdown-nav">
<li>...</li>
<li>...</li>
</ul>
</div>
</div>
</div>
</li>
</ul>
</div>
I use the wrap() function to add a bit of extra code to make the click/hover and column width possible.
The problem that I have is that, although the Products link has column-justify and mode-hover classes, the width is column-width-3 (same as toggle).
Plus for both, the hover effect is used for both links (while toggle alone should be on click mode and hover mode is for the Products link).