【问题标题】:Stop Angular UI bootstrap dropdown from closing in certain cases?在某些情况下阻止 Angular UI 引导下拉菜单关闭?
【发布时间】:2015-06-13 13:19:59
【问题描述】:

我有一个包含选项卡和按钮的下拉菜单。我希望能够在不关闭下拉菜单的情况下单击选项卡,但是如果我单击一个按钮,它将关闭。

我使用 $event.stopPropagation() 来停止关闭,但显然这也阻止了关闭它的按钮。

有没有办法做到这一点?

【问题讨论】:

  • 为什么不保留stopPropagation() 并在按钮的ng-click 处理程序中自己关闭下拉列表? (并将下拉菜单中的auto-close 选项设置为outsideClickdisabled
  • 我在 tabset 上有 stopPropagation(),这会阻止一切。 outsideClick 似乎可以在我制作的 plunker 中工作,但不能在我的应用程序中工作,奇怪。
  • 我正在使用 angular ui bootstrap 0.13.0,移动到 0.13.1 使它再次工作。我是一个已知的错误。

标签: javascript angularjs angular-ui-bootstrap event-bubbling


【解决方案1】:

默认情况下,如果单击其中的任何元素,下拉菜单将自动关闭,您可以通过设置自动关闭选项来更改此行为,如下所示:

always - (默认)在任何元素被点击时自动关闭下拉菜单。

outsideClick - 仅当用户单击下拉菜单外的任何元素时才会自动关闭下拉菜单。

disabled - 禁用自动关闭。然后,您可以使用is-open 手动控制下拉菜单的打开/关闭状态。请注意,如果单击切换按钮、按下 esc 键或打开另一个下拉菜单,下拉菜单仍将关闭。

这是一个示例:Plunker

    <div class="btn-group" dropdown auto-close="disabled">
      <button type="button" class="btn btn-danger">Action</button>
      <button type="button" class="btn btn-danger dropdown-toggle" dropdown-toggle>
        <span class="caret"></span>
        <span class="sr-only">Split button!</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>

【讨论】:

  • 任何想法如何使用 angular-bootstrap v0.12.1 做到这一点?我直接复制了你的代码,它似乎不起作用。谢谢。
  • 我们可以禁用某些特定 li 元素的自动关闭功能吗?
  • 有没有办法做同样的事情,自动关闭外部点击但在香草js中?我一直在尝试 e.stopPropagation,但它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 2014-04-28
  • 2014-01-22
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多