【问题标题】:Dropdown closes after every click每次点击后下拉菜单关闭
【发布时间】:2015-08-16 12:35:44
【问题描述】:

每次鼠标点击后下拉菜单都会关闭。只有在点击“关闭 (X)”按钮后,下拉菜单才会关闭。我怎样才能做到这一点? 普朗克:

http://plnkr.co/edit/7mcBoyfbrT3FNl2vJLjh?p=preview

<!DOCTYPE html>
<html>

  <head>
    <link rel="stylesheet" href="style.css">
    <script src="script.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

  </head>

  <body>
    <h1>Hello Plunker!</h1>
    <div class="btn-group">
          <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
            Action <span class="caret"></span>
          </button>
          <ul class="dropdown-menu" role="menu">
            <li><a href="#">Action</a>
            </li>
            <li><a href="#">Another action</a>
            </li>
            <li><a href="#">Something else here</a>
            </li>
            <li class="divider"></li>
            <li><a href="#">Separated link</a>
            </li>
          </ul>
        </div>
  </body>
</html>

【问题讨论】:

标签: javascript html css drop-down-menu


【解决方案1】:

如果您想在本机引导程序中执行此操作,那么 answer 是正确的。

但是,我建议您使用angular ui bootstrap (https://angular-ui.github.io/bootstrap/)。因为,您正在使用 angular.js(in plunker) 并且 angular ui bootstrap 提供所有引导组件作为指令。并且您不必围绕原生引导组件编写角度包装器。

幸运的是,angular ui bootstrap 中的下拉菜单为auto-close 提供了选项,您可以将其设置为outsideClick,这样当您在下拉菜单中单击时它不会关闭。

Angular UI Bootstrap Dropdown Docs

请参阅下面的工作示例。

var app = angular.module('app', ['ui.bootstrap']);

app.controller('ctrl', function($scope) {

  $scope.closeDropDown = function() {
    $scope.isopen = false;
  };
  
});
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.13/angular.js"></script>
<link href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet">
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.0.js"></script>

<div ng-app="app">
  <div ng-controller="ctrl">
    <div class="btn-group" dropdown is-open="isopen" auto-close="outsideClick">
      <button type="button" class="btn btn-default dropdown-toggle" dropdown-toggle>
        Options <span class="caret"></span>
      </button>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a>
          <ul>
            <label class="checkbox">
              <input type="checkbox">Open
            </label>
          </ul>
          <ul>
            <label class="checkbox">
              <input type="checkbox">Close
            </label>
          </ul>
        </li>

        <li><a href="#">Another action</a>
        </li>
        <li><a href="#">Something else here</a>
        </li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a>
        </li>
        <li class="divider"></li>
        <li>
          <button type="button" ng-click="closeDropDown()">Close (X)</button>
        </li>
      </ul>
    </div>

  </div>
</div>

【讨论】:

  • 非常感谢!这有帮助。
  • 这个模块完全按照我想要的方式工作。但是,当我将它插入我的 HTML 页面时,它会收到一条错误消息,提示“不允许属性自动关闭”。我可以做些什么来调试错误?
  • 你在代码中使用 angular ui bootstrap 吗?
  • 是的,我包括 HTML 和 angular.module('mySupport', ['ui.bootstrap']);在我的 JS 中。
  • 你能创建 jsfiddle 或 plunker 以便我看一下代码吗?没有看到代码,我无法说出其中出了什么问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
相关资源
最近更新 更多