【发布时间】:2019-05-18 06:05:01
【问题描述】:
angular.element('body').on('click', function () {
// $('.dropdown-menu').hide();
console.log("clicked outside");
});
$scope.showDropdown = function (e) {
$scope.filterClick = !$scope.filterClick;
e.stopPropagation();
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.4/angular.min.js"></script>
<button id="btn-append-to-body" type="button" class="btn btn-primary"
ng-click="showDropdown()">
<img src="assets/images/filterIcon.png">
  Filter <span class="caret"></span>
</button>
<li class="nav-item dropdown" ng-hide="filterClick">
<div class="dropdown-menu">
<div class="dropdown-item" ng-repeat="item in items">
<div class="filter-class">
</div>
</div>
</div>
</li>
我有按钮点击和正文点击功能。但是,如果我在单击正文时在控制台中打印任何值,它工作正常。但同样的功能也适用于按钮点击。
我的需要是,
1) 如果我点击按钮,body onclick 不应该触发。只有按钮 onclick 应该可以工作。
2) 单击按钮时,过滤器下拉菜单正在打开。当我再次单击相同的按钮时,它正在关闭。 (切换)
3) 但是当我在任何地方点击外部时,我想隐藏该下拉菜单。但它不起作用。
如何使用 angularjs 做到这一点?
【问题讨论】:
-
您的 HTML 没有正文标记。请制作一个没有任何错误的可运行的sn-p
标签: javascript html css angularjs