【问题标题】:AdminLTE submenu expands then collapsesAdminLTE 子菜单展开然后折叠
【发布时间】:2016-03-20 01:18:52
【问题描述】:
我在由其他人启动的项目中使用 AdminLTE
我在添加子菜单时看到的行为是它展开然后立即折叠
我尝试使用 index.html 页面中的完整 <aside class="main-sidebar">...</aside>,但仍然得到与此处相同的行为 -https://gyazo.com/e88b049ccd7b2d06d65ccc7986166cdf
如果我在本地从模板中打开 index.html,它可以正常工作
我认为这个项目可能缺少一些东西,但不知道是什么...尝试加载所有 js,我在控制台中没有看到任何错误
任何帮助将不胜感激
【问题讨论】:
标签:
javascript
jquery
submenu
adminlte
【解决方案1】:
侧边栏的行为不受 index.html 文件的控制,而是由位于 adminlte 的 /dist/js 文件夹中的 app.js 文件控制。
您的项目中必须包含此文件(以及其他文件)。
我的建议是首先查看您的 app.js 文件是否未被之前从事 hte 项目的人修改过,或者您是否可以在其他地方拥有一些覆盖默认侧边栏行为的脚本。
控制左侧边栏的原始代码从app.js文件(adminlte v2.3.6)的第380行开始,如下:
$.AdminLTE.tree = function(menu) {
var _this = this;
var animationSpeed = $.AdminLTE.options.animationSpeed;
$(document).off('click', menu + ' li a')
.on('click', menu + ' li a', function(e) {
//Get the clicked link and the next element
var $this = $(this);
var checkElement = $this.next();
//Check if the next element is a menu and is visible
if ((checkElement.is('.treeview-menu')) && (checkElement.is(':visible')) && (!$('body').hasClass('sidebar-collapse'))) {
//Close the menu
checkElement.slideUp(animationSpeed, function() {
checkElement.removeClass('menu-open');
//Fix the layout in case the sidebar stretches over the height of the window
//_this.layout.fix();
});
checkElement.parent("li").removeClass("active");
}
//If the menu is not visible
else if ((checkElement.is('.treeview-menu')) && (!checkElement.is(':visible'))) {
//Get the parent menu
var parent = $this.parents('ul').first();
//Close all open menus within the parent
var ul = parent.find('ul:visible').slideUp(animationSpeed);
//Remove the menu-open class from the parent
ul.removeClass('menu-open');
//Get the parent li
var parent_li = $this.parent("li");
//Open the target menu and add the menu-open class
checkElement.slideDown(animationSpeed, function() {
//Add the class active to the parent li
checkElement.addClass('menu-open');
parent.find('li.active').removeClass('active');
parent_li.addClass('active');
//Fix the layout in case the sidebar stretches over the height of the window
_this.layout.fix();
});
}
//if this isn't a link, prevent the page from being redirected
if (checkElement.is('.treeview-menu')) {
e.preventDefault();
}
});};