AngularJS 1.3.0-beta.2, jQuery 2.1.0, Angular UI 0.11 및 사용자 지정 버전의 Angular UI의 도구 설명 위젯을 사용하고 있으며 클릭하면 도구 설명 내의 버튼이 도구 설명을 닫도록하고 싶습니다.
핵심 부분은 crud_tooltip.js : 372에 있습니다.
scope.closePopup = function() {
var trigger = element.prev();
if (scope.mode === 'timeout') {
$timeout(function() {
trigger.triggerHandler('click');
});
}
else {
trigger.triggerHandler('click');
}
};
$ timeout을 사용하는 버전은 작동하지만 버튼을 클릭하고 팝업이 닫히는 사이에 눈에 띄는 지연이 있습니다.
$ timeout을 사용하지 않는 버전은 [$ rootScope : inprog] $ apply already in progress 오류를 제공합니다 . 그런 다음 어쨌든 팝업을 닫습니다 ... 이유를 모르겠습니다.
closePopup (또는이를 호출하는 ng-click)을 수정하여 사용자가 툴팁 내의 버튼을 클릭 할 때 툴팁을 즉시 닫도록하려면 어떻게해야합니까?
참고 : 이 Plunker 를 지침으로 사용하여 Angular UI의 도구 설명 코드에서 custom_tooltip.js 코드를 수정 했습니다. 또한 tt_isOpen 값을 직접 변경하고 새로운 crudtooltip-toggle 속성을 정의 해 보았습니다. 둘 다 매우 제한적으로 성공했습니다.
요점을 놓치고있을 수도 있지만, 귀하의 코드는 이러한 단순한 기능을 위해 엄청나게 복잡하고 복잡해 보입니다. 어쨌든 지연은 실제로 $timeout
일부 애니메이션이 완료되기를 기다리는에 기인합니다 . 시간 초과는 scope.tt_animation
진실로 평가 되기 때문에 트리거 됩니다. 간단하게 줄에서 0으로 제한 시간을 변경하는 258 의 crud_tooltip.js
수정 문제. 이 플렁크 보기
문제 영역은 다음과 같습니다.
if ( scope.tt_animation ) {
transitionTimeout = $timeout(removeTooltip, 500);
} else {
removeTooltip();
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다