Leaflet 当用户在地图外单击时,单张方向标记禁用焦点
我在标记上有一个单击功能,它将启用标记弹出窗口。但是当用户在地图外单击时,我想禁用此焦点。如何做到这一点Leaflet 当用户在地图外单击时,单张方向标记禁用焦点,leaflet,angular-leaflet-directive,cumulocity,Leaflet,Angular Leaflet Directive,Cumulocity,我在标记上有一个单击功能,它将启用标记弹出窗口。但是当用户在地图外单击时,我想禁用此焦点。如何做到这一点 $scope.$on('leafletDirectiveMarker.click', function (event, args) { $scope.markers['m' + args.model.value.id].focus = true; createTemplateForPopup(args.model.value);
$scope.$on('leafletDirectiveMarker.click', function (event, args) {
$scope.markers['m' + args.model.value.id].focus = true;
createTemplateForPopup(args.model.value);
});
您只需收听窗口事件并禁用单击时的所有焦点:
$window.addEventListener('click', function(e) {
$scope.markers.forEach(function(marker) {
marker.focus = false;
});
});
您可以防止默认值在有人选择标记时不触发窗口单击:
$scope.$on('leafletDirectiveMarker.click', function (event, args) {
event.preventDefault();
$scope.markers['m' + args.model.value.id].focus = true;
createTemplateForPopup(args.model.value);
});
唯一的问题是,这总是会触发。因此,在地图被销毁时删除EventListner是一种很好的做法