工具提示适用于鼠标悬停并单击两者 - ngbootstrap

时间:2021-03-17 12:03:25

标签: javascript tooltip angular7 ng-bootstrap

我正在使用 https://ng-bootstrap.github.io/#/components/tooltip/ 并且需要在鼠标悬停和点击时打开工具提示。

基本上,鼠标悬停时出现 text1,单击时工具提示文本更改为 text2。在示例中,我只看到一个事件(点击或悬停)。

最好的例子是 - https://pypi.org/project/nltk/ - 我需要使用 https://ng-bootstrap.github.io/#/components/tooltip/ 的相同功能。

Angular 7 正在我的项目中使用。

1 个答案:

答案 0 :(得分:0)

您可以使用 ngb-tooltipcontext and manual triggers 功能来实现这一点。

在您的 HTML 中,定义工具提示:

<ng-template #tipContent let-greeting="greeting">{{greeting}}</ng-template>

上面的 HTML 将变量 greeting 的值显示为工具提示中的文本。

同时定义您希望工具提示出现的按钮(或其他 HTML)元素

<button
  type="button"
  class="btn btn-outline-secondary mr-2"
  [ngbTooltip]="tipContent"
  triggers="manual"
  #t1="ngbTooltip"
  (mouseover)="openTooltip(t1, 'text 1')"
  (mouseout)="closeTooltip(t1)"
  (click)="openTooltip(t1, 'text 2')">
      Tooltip on top
</button>

这使用手动触发器,您可以绑定到 mouseovermouseout 事件以在将鼠标悬停在按钮上时显示工具提示 text 1click 绑定将在点击按钮时显示工具提示 text 2

openTooltip 函数在 TypeScript 文件中定义,打开工具提示,传入作为方法参数传入的文本。行 tooltip.close() 是必需的,否则单击按钮以显示 text 2 工具提示将不起作用:

openTooltip(tooltip, greeting: string) {
  tooltip.close();
  tooltip.open({ greeting });
}

有一个可用的 StackBlitz 演示 here

closeTooltip 函数只是关闭工具提示:

closeTooltip(tooltip) {
  tooltip.close();
}