当前位置: 首页 > 面试题库 >

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

轩辕亮
2023-03-14
问题内容

我一直在环顾四周,尝试各种不同的方法,但无法解决。是否可以在特定事件下隐藏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中触发“点击”事件以关闭工具提示。触发事件之前,请确保工具提示实际上已打开。

// ... meanwhile, in JavaScript land, in your custom event handler...
if (angular.element('#myButton').scope().tt_isOpen) {
    angular.element('#myButton').trigger('click');
}

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



 类似资料:
  • 问题内容: 我正在尝试使用angular- ui的工具提示功能向用户显示特定字段无效,但是似乎只能在某些预定义的触发器上显示该工具提示。除了那些触发器外,还有什么方法可以触发工具提示? 例如: 问题答案: 这是一个把戏。 Twitter Bootstrap工具提示(Angular- UI依赖于此)具有一个选项,可以指定带有附加属性的触发事件,如中所示。这为您提供了一种以编程方式(使用Angular

  • 问题内容: 我基于Tkinter创建了一个应用程序,该应用程序使用Matplotlib绘制波形。我不知道如何更改Matplotlib工具栏按钮的工具提示(由于我的应用程序是捷克语,因此我需要翻译英文说明)。我还想更改/翻译或仅删除单击缩放或平移按钮时出现在工具栏面板旁边的说明(,)。 我发现了一些有关如何从工具栏添加或删除按钮的有用提示,但是没有找到有关自定义工具提示/描述的任何建议。我认为这与前

  • 问题内容: 我目前在我的应用程序中添加了一些引导工具提示。 所有的“正常”工具提示都可以,但是当我要使用时,我得到的只是一个空的工具提示。 我的工具提示: 在DOM中,我有: div的内容似乎为空,因此工具提示中没有任何内容可显示。我试图将一些HTML文本直接放在DOM中,例如: 而且有效。 你有好主意吗? 问题答案: html-unsafe指令旨在指出其内容。那这个呢: 然后,在SomeCtrl

  • 我想在页面加载时显示1个工具提示,然后在几秒钟后隐藏它和/或在另一个工具提示悬停时隐藏它。 我已经找到了几种方法来做到这一点,但我使用了一个Elementor插件作为我的工具提示,所以它嵌套在几个div中,这让我感到困惑。 当您悬停在“div.eael-tooltip”上时-“span.eael-tooltip-text”显示(这是我想自动显示几秒钟的内容) 我知道我可能需要一些jQuery,有谁

  • 我有一个自定义组件,它只是谷歌位置自动完成的包装。有时地址比输入框长,所以我实现了一个显示完整地址的工具提示。问题是,如果我在同一页面上有两个组件,并且我将鼠标悬停在其中一个输入框上,两个工具提示都会启动,因为页面上还有另一个组件。我怎么能只启动悬停的工具提示,而不启动其他所有工具提示? 我的组件如下所示: 实现两个组件的表单如下所示: 这是其中一个地址字段上的工具提示屏幕截图。正如您所看到的,底

  • 我试图在Android上的React原生应用程序中定义一个自定义事件。我有原生视图,它有一个原生按钮。当按下按钮时,我想向我的React原生组件发送一条消息,以显示一个模式屏幕。 我遵循了示例,但不理解所有元素,在尝试中做了一些猜测。 在我的ViewManager类中: 自定义视图: 所以我希望,每次调用时,触发JS事件,我可以在React Native应用程序中显示模态视图。 在我的React组