【问题标题】:Closing angular-bootstrap-datetimepicker on date click在日期单击时关闭 angular-bootstrap-datetimepicker
【发布时间】:2017-01-11 14:25:38
【问题描述】:

我正在使用 UI Bootstrap 下拉组件在点击时显示 angular-bootstrap-datetimepicker 日历。我工作得很好,但是日历块只在点击离开时关闭,而不是在你点击日历时关闭。

如何在不使用 jQuery 的情况下使日历块关闭日历日期的 onclick

Plunker
GIF

<div uib-dropdown>
  <h4>
    <a uib-dropdown-toggle href="">Select Date <b class="caret"></b>
    </a>
  </h4>
  <ul uib-dropdown-menu>
    <datetimepicker data-ng-model="date" data-datetimepicker-config="{ startView:'month', minView:'month' }"></datetimepicker>
  </ul>
</div>

【问题讨论】:

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


    【解决方案1】:

    你不需要 jQuery。可以使用$scope.$watchangular.element自动关闭is:

      $scope.$watch('date',function(newValue){
        newElement=angular.element(document.getElementsByClassName('.uib-dropdown'))
        if(!newValue) return
        angular.element(document.getElementsByClassName('dropdown')).removeClass('open')
      })
    

    查看这个 Plnkr 的使用示例:https://plnkr.co/edit/tJr7XO5dJUrIWshyfKX6?p=preview

    请注意:最好使用标签 ID,而不是类名(如果您有多个下拉菜单)。

    删除和添加open 类相当于单击下拉箭头(以及显示和隐藏日历)

    【讨论】:

    • 我注意到您的解决方案存在一个小问题。选择日期后,日历块仅在第二次单击时打开。你知道我该如何预防吗?
    • aria-expanded 中的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多