2 years ago

#33997

test-img

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

Accepted video resources