繁体   English   中英

在我的情况下如何检测点击和操作元素

[英]How to detect a click and manipulate element in my case

我试图在用户单击页面中的任何位置时检测到文档单击。 我也想防止单击div来触发文档单击。

我有类似的东西

//Directive for page click
angular.module('myApp').directive('documentClick', ['$rootScope',
    function($rootScope) {
        return function(scope, element, attrs) {
            element.bind('click', function(e){
                $rootScope.$broadcast('pageClick');
            })
        }
}]);

controller JS

  //within a controller
  $scope.toggleDiv = function() {
      $scope.openDiv = !$scope.OpenDiv;
   }

  $scope.$on('pageClick', function($event) {
            $scope.openDiv = false;
  })

html 
  <body document-click>
      <div ng-controller = 'ctrl'>
          <div id='testDiv'>
               <div id='childDiv' ng-click="toggleDiv()">
                    toggle div here
               </div>
           </div>
      </div>
  </body>

当我点击' childDiv '时,我不想触发$scoep.openDiv = false 我只想在单击页面中的任何位置时触发$scope.openDiv = false

有没有办法做到这一点?

谢谢!

您可以传递事件e并检查target.id

$rootScope.$broadcast('pageClick', e);

$scope.$on('pageClick', function($event, e) {
    if(e.target.id !== 'childDiv')
        $scope.openDiv = false;
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM