javascript - 在 Angularjs 应用程序中,如果不按住鼠标单击,则无法搜索子菜单项

标签 javascript angularjs angular-ui angular-ui-bootstrap

我正在尝试为子菜单提供搜索文本框。尽管它工作正常,但我需要继续按住鼠标才能输入搜索文本,当我松开鼠标时,子菜单就会关闭,并且我无法输入搜索文本。请找到我的Plunker以供引用。有什么办法可以解决这个问题吗?

以下是我的子菜单代码:

 <li class="dropdown-submenu"><a href>Filter Sub Menu</a>   
          <ul class="dropdown-menu">
            <li>
              <input type="text" ng-model="filterSearch">
            </li>
            <li ng-repeat="filt in savedFilterList|filter:filterSearch "> <a href> {{filt.filter_name}}</a> 
            </li>
          </ul>
        </li>

最佳答案

如果您必须执行子菜单,那么最简单的方法可能就是在 ng-click 上使用 $event.stopPropagation() 来获取输入的 li 元素。

您的 Plunker 有点困惑,其中包含 bootstrap.css、jQuery、bootstrap.js 和其他一些 jQuery 插件的多个副本。这肯定会影响事情是否有效,所以我删除了与这个问题无关的所有内容。

请记住,当您使用 UI Bootstrap 时,请勿加载 bootstrap.js。 UI Bootstrap 也不需要 jQuery(除非您需要它来包装在 AngularJS 包装器中的其他 jQuery 插件,否则不要加载它——我建议尽可能避免使用它)。

Plunker Demo

<body ng-controller="MainCtrl">
  <div class="btn-group" dropdown is-open="status.isopen">
    <button type="button" class="btn dropdown-toggle" dropdown-toggle>
      Action <span class="caret"></span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li>
        <a>Apply</a>
      </li>
      <li>
        <a>Cancel</a>
      </li>
      <li>
        <a>Save</a>
      </li>
      <li>
        <a>Save As</a>
      </li>
      <li class="dropdown-submenu">
        <a>Filter Sub Menu</a>
        <ul class="dropdown-menu">

          <!--ADD $event.stopPropagation() to the li that wraps the search input-->

          <li ng-click="$event.stopPropagation()" >
            <div class="input-group">
              <span class="input-group-addon">
                  <span class="sr-only">Search</span>
              <span class="glyphicon glyphicon-search"></span>
              </span>
              <input type="text" class="form-control" ng-model="filterSearch">
            </div>
          </li>
          <li ng-repeat="filt in savedFilterList|filter:filterSearch ">
            <a>{{filt.filter_name}}</a>
          </li>
        </ul>
      </li>
    </ul>
  </div> 

关于javascript - 在 Angularjs 应用程序中,如果不按住鼠标单击,则无法搜索子菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30118468/

相关文章:

javascript - 网络错误: 404 Not Found in angularjs with ng-if

angularjs - ng-options 和唯一过滤器不显示 angular.js

javascript - angular-ui-mask 未按预期在文本框中屏蔽

angularjs - 向 ng-grid 列添加属性

javascript - 在node.js中返回数据

javascript - 使用纯 JavaScript 刷新我的井字游戏的最佳方式?

JavaScript循环错误: Uncaught TypeError

c# - Stop OnClientClick ="aspnetForm.target =' _blank';"从其他控件点击中触发?

javascript - 在 Angular 中对许多同一张表进行排序

javascript - 我正在使用 Angular ui-select 进行下拉。如何获取 Controller 中选定的值?