如何在我的案例中检测点击和操纵元素

时间:2014-09-24 23:08:45

标签: javascript html css angularjs

当用户点击页面中的任意位置时,我正在尝试检测文档点击。我还想阻止点击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>

点击$scoep.openDiv = false&#39;后,我不想触发childDiv。我只想在点击页面中的任意位置时触发$scope.openDiv = false

有没有一种有角度的方式来做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以传递活动e并查看target.id

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

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