내가 클릭에 <div ng-show=appearOnChoice>
을 표시하고 다시 클릭하면 다시 전환 버튼AngularJS와
<button type="button" ng-click="chooseOptions()" id="chooseOptionButton" ng-bind="whatToDisplay()"></button>
을 만들어 NG는 클릭!
$scope.chooseOptions=function(){
$scope.appearOnChoice=!$scope.appearOnChoice;
}
그러나 나는 또한 사용자가이 div
요소 외부의 아무 곳이나 클릭 할 때이 요소가 다시 숨길. 어떻게해야합니까? 엄격히 AngularJS를 사용하고 jQuery를 사용하지 않아야합니다.
희망 하시겠습니까?
편집 : 나는 부트 스트랩 날짜 선택기의 일부 이벤트를 적응하려고하지만 제대로
$scope.$on('datepicker.focus', focusElement);
scope.$watch('isOpen', function(value) {
if (value) {
scope.$broadcast('datepicker.focus');
scope.position = appendToBody ? $position.offset(element) : $position.position(element);
scope.position.top = scope.position.top + element.prop('offsetHeight');
$document.bind('click', documentClickBind);
} else {
$document.unbind('click', documentClickBind);
}
});
var focusElement = function() {
$timeout(function() {
self.element[0].focus();
}, 0 , false);
};
가 어떻게 내 경우에이를 적용 할 수 있습니다 적용하는 방법을 잘 모르겠습니다!
귀하의 솔루션에 다가 가고 있습니다. 흐림 효과는 좋은 생각입니다. 그러나 일단 div가 표시되고 클릭하면 포커스가 사라지고 동시에 div도 포커스를 얻지 못한다는 것을 언급해야합니다. 그러므로, 이런 식으로 가능하지는 않습니다. – Dribel
기본 문제 중 하나라고 생각합니다. 단순히 div를 통해 DOM을 통해 포커스를 설정하는 것이 좋습니다. div 요소에 포커스를 설정할 수 있는지 여부는 입력 요소가 아니기 때문에 클릭으로 알 수 있습니다. 편집 : div에 tabindex를 추가하면 도움이 될 수 있습니다.체크 아웃 [이 링크] (http://stackoverflow.com/a/148444/2719246) – Beartums
tabindex는 불행히도 작동하지 않았다. 어쨌든 고마워!!!! – Dribel