每次点击后下拉都会关闭

时间:2015-06-02 15:51:45

标签: javascript html css drop-down-menu

每次单击鼠标后关闭下拉列表。只有在点击“关闭(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>

1 个答案:

答案 0 :(得分:4)

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

但是,我建议您使用angular ui bootstraphttps://angular-ui.github.io/bootstrap/)。因为,你正在使用angular.js(在plunker中)和 angular ui bootstrap 提供所有引导程序组件作为指令。并且您不必在本机引导程序组件周围编写角度包装器。

幸运的是,角度ui引导程序的下拉提供了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>