单击而不是输入或键入时过滤列表

Filter list on click instead of on input or keyup

我找到了一个 javascript 允许用户搜索我的树菜单。但是,我需要它只在单击按钮时起作用,而不是在用户键入时起作用。我知道如何创建按钮并将 OnCLick 添加到它,但我无法弄清楚如何仅在单击按钮时将我的工作脚本更改为 运行。

这是工作脚本(我必须给 li 标签一个 class 这样脚本就不会尝试搜索页面上的其他列表):

<script type="text/javascript">
$(document).ready(function () {
    $("#search").on("input", function () {
        if (this.value.length > 0) {
            $("li.menusearch").hide().filter(function () {
                return $(this).text().toLowerCase().indexOf($("#search").val().toLowerCase()) != -1;
            }).show();
      }
        else {
            $("li.menusearch").show();
        }
    });
});

这是输入

<input type="search" id="search" name="search"/> 

要调整您的脚本以处理按钮点击,请按如下方式调整(#button 对应于您的按钮 ID):

 $(document).ready(function () {
    $("#button").on("click", function () {
       if ($("#search").val().length > 0) {
           $("li.menusearch").hide().filter(function () {
              return $(this).text().toLowerCase().indexOf($("#search").val().toLowerCase()) != -1;
        }).show();
       }
       else {
          $("li.menusearch").show();
       }
   });
});