javascript - 如何在不编写指令的情况下使用 angularjs 在外部单击时隐藏 div

标签 javascript html css angularjs

我想在点击外部(正文或文档)时隐藏一个 div 内容。我不想为此编写任何指令。

我已经写过了,但是按钮点击和 body 点击是一对一的合并。所以如果我点击按钮,它会点击 body 。

<li class="nav-item dropdown" ng-hide="filterClick">
                        <div class="dropdown-menu">
                            <div class="dropdown-item" ng-repeat="filter in filters">
                                <div class="filter-class"></div>
                            </div>
                        </div>
                    </li>

$scope.showDropdown = function () {
      $scope.filterClick = !$scope.filterClick;
       if ($scope.filterClick) {
        angular.element(document).on('click', function () {
            console.log("close");
    });
    } else if(!$scope.filterClick){
        $scope.filterClick = false;
        window.onload = null;
         //--> trigger digest cycle and make angular aware. 
    }
    }

在这里,我想在点击外部时隐藏“下拉菜单”div。请任何人帮助我。

最佳答案

指令

angular.element(document).on('click', function () {
    $scope.$apply(function () {
        $scope.filterClick = true;
    })
});

$scope.showDropdown = function (e) {
    $scope.filterClick = !$scope.filterClick;
    e.stopPropagation(); //This will prevent from bubbling event to document
}

关于javascript - 如何在不编写指令的情况下使用 angularjs 在外部单击时隐藏 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56154656/

相关文章:

javascript - jCarousel + jQuery Accordion + fadeIn

html - .NET 中的选择性 HTML 编码(除某些标记外的所有内容)?

php - HTML 元素数组,名称 ="something[]"或名称 ="something"?

css - 栏副标题按钮上的小图标

javascript - BigText 的垂直间距(行高)

javascript - 将包含数组的 Javascript 对象序列化为 json?

html - 如何从类内的微数据元标记中检索内容值

javascript - 在哪里可以找到 HTML 标签的默认 `display` 样式属性?

jquery - 我是否正确地执行了这个 jQuery Click() 函数?

javascript - 使用ajax返回谷歌地图标记始终为空