Der aktuelle Code funktioniert fast, aber es gibt einen spürbaren Flacker (ein kurzer Zusammenbruch und eine erneute Expansion) beim Klicken auf ein Untermenü-Element und manchmal beim wiederholten Klicken auf denselben Menüpunkt der obersten Ebene. Dies scheint durch den JavaScript-Code verursacht zu werden, der die gesamte Menüstruktur in jedem Klick im Menü neu bewertet, auch wenn es nicht erforderlich ist, den geöffneten/geschlossenen Zustand des Menüs zu ändern. Ausgabe. < /p>
Code: Select all
(function($) {
$(document).ready(function() {
$('#adminmenu .wp-submenu').hide();
$('#adminmenu > li.wp-has-submenu > a').off();
$('#adminmenu > li.wp-has-submenu > a').on('click', function(e) {
e.preventDefault();
var $menuItem = $(this).parent();
var $submenu = $menuItem.find('.wp-submenu').first();
if ($submenu.is(':visible')) {
$submenu.slideUp(150, function() {
$menuItem.removeClass('opensub');
});
} else {
$('#adminmenu .wp-submenu:visible').slideUp(150, function() {
$(this).parent().removeClass('opensub');
});
$submenu.slideDown(150, function() {
$menuItem.addClass('opensub');
});
}
});
var $currentMenuItem = $('#adminmenu li.current');
if ($currentMenuItem.length) {
var $parentMenu = $currentMenuItem.closest('li.wp-has-submenu');
$parentMenu.addClass('opensub');
$parentMenu.find('.wp-submenu').show();
}
});
})(jQuery);
< /code>
#adminmenu li.wp-has-submenu .wp-submenu {
position: static !important;
display: none;
box-shadow: none !important;
}
#adminmenu .wp-not-current-submenu .wp-submenu,
.folded #adminmenu .wp-has-current-submenu .wp-submenu {
border-left-width: 0 !important;
border: 0 !important;
}
#adminmenu .wp-has-current-submenu ul>li>a, .folded #adminmenu li.menu-top .wp-submenu>li>a {
padding: 5px 14px !important;
}