gpt4 book ai didi

angularjs - 在自定义事件上隐藏 angular-ui 工具提示

转载 作者:行者123 更新时间:2023-12-04 01:56:53 25 4
gpt4 key购买 nike

我一直在环顾四周,尝试不同的东西,但无法弄清楚。是否可以在某个事件中隐藏 angular-ui 工具提示?

我想要做的是当有人将鼠标悬停在 div 上时显示一个工具提示,并在用户点击它时关闭它,因为我将显示另一个弹出窗口。我尝试使用自定义触发事件,但似乎无法正常工作。我做的:

<div ng-app="someApp" ng-controller="MainCtrl" class="likes" tooltip="show favorites"     tooltip-trigger="{{{true: 'mouseenter', false: 'hideonclick'}[showTooltip]}}" ng-click="doSomething()">{{likes}}</div>

var app = angular.module('someApp', ['ui.bootstrap']);

app.config(['$tooltipProvider', function($tooltipProvider){
$tooltipProvider.setTriggers({
'mouseenter': 'mouseleave',
'click': 'click',
'focus': 'blur',
'hideonclick': 'click'
});
}]);

app.controller('MainCtrl', function ($scope) {
$scope.showTooltip = true;
$scope.likes = 999;

$scope.doSomething = function(){
//hide the tooltip
$scope.showTooltip = false;
};

})

http://jsfiddle.net/3ywMd/

工具提示必须在第一次点击而不是第二次点击时关闭。如果用户单击 div,知道如何关闭工具提示吗?

最佳答案

我尝试了@shidhin-cr 的设置建议 $scope.tt_isOpen = false但它有一个相当重要的问题,虽然工具提示确实淡出,但它仍然存在于 DOM 中(并处理指针事件!)。因此,即使他们看不到它,工具提示也可以阻止用户与之前位于工具提示后面的内容进行交互。

我发现的一个更好的方法是简单地触发用作工具提示目标上的工具提示触发器的事件。因此,例如,如果您有一个作为工具提示目标的按钮,并在单击时触发...

<button id="myButton"
tooltip="hi"
tooltip-trigger="click">
</button>

然后在您的 JavaScript 中,您可以随时触发 'click' 事件以关闭您的工具提示。在触发事件之前,请确保工具提示实际上已打开。
// ... meanwhile, in JavaScript land, in your custom event handler...
if (angular.element('#myButton').scope().tt_isOpen) {
angular.element('#myButton').trigger('click');
}

由于这会触发 AngularUI 的 Tooltip 指令的实际内部结构,因此您不会有前一个解决方案的令人讨厌的副作用。

关于angularjs - 在自定义事件上隐藏 angular-ui 工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19730461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com