2 years ago
#33997
charlie
AdminLTE Template sidebar menu search
I am using the AdminLTE template, and found this function to search the sidebar menu
https://github.com/ColorlibHQ/AdminLTE/issues/798
Here is the code I have used:
$(document).ready(function() {
$.fn.openMenu = function () {
var className = $(this).attr('class');
if(className == "treeview"){
$(this).addClass("active");
}else if(className == "treeview-menu" ){
$(this).addClass("menu-open");
$(this).css({ display: "block" });
}
};
$.fn.closeMenu = function () {
var className = $(this).attr('class');
var count = $(this).length;
if(count > 1){
$.each($(this), function( key, element ) {
className = $(element).attr('class');
if(className == "treeview active"){
$(element).removeClass("active");
}else if(className == "treeview-menu menu-open" ){
$(element).removeClass("menu-open");
$(element).css({ display: "none" });
}
});
}else{
if(className == "treeview active"){
$(this).removeClass("active");
}else if(className == "treeview-menu menu-open" ){
$(this).removeClass("menu-open");
$(this).css({ display: "none" });
}
}
};
$(".search-menu-box").on('input', function() {
var filter = $(this).val();
$(".sidebar-menu > li").each(function(){
if ($(this).text().search(new RegExp(filter, "i")) < 0) {
$(this).hide();
} else {
$(this).show();
$(this).parentsUntil(".treeview").openMenu();
}
});
});
});
It works well, but it's not opening the menus to show the sub items.
There are no errors in the console.
I tried changing this:
$(this).parentsUntil(".treeview").openMenu();
to this:
$(this).parentsUntil(".treeview").addClass("menu-open");
but still no luck with it
html
jquery
adminlte
0 Answers
Your Answer