[英]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.