【问题标题】:How can I hide div on click outside using angularjs without writing directive如何在不编写指令的情况下使用 angularjs 在外部单击时隐藏 div
【发布时间】:2019-05-16 03:47:34
【问题描述】:

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

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

<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。请任何人帮助我。

【问题讨论】:

标签: javascript html css angularjs


【解决方案1】:

指令

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
}

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    相关资源
    最近更新 更多