显示 mdTooltip 直到单击,再次单击时隐藏

Posted

技术标签:

【中文标题】显示 mdTooltip 直到单击,再次单击时隐藏【英文标题】:Show mdTooltip until clicked, hide when clicked again 【发布时间】:2018-03-18 01:15:09 【问题描述】:

我正在尝试禁用鼠标悬停效果并在单击时触发 mdTooltip 并在再次单击时禁用它。有可能这样做吗?我认为 .toogle() 方法将是正确的工具,不幸的是它的工作方式相反。

<div style="text-align: center;">
   <span matTooltip="Tooltip!" #tooltip="matTooltip" (click)="tooltip.toggle()">Test</span> 
</div>

【问题讨论】:

我听说 link 添加了这个功能,但是我不明白如何使它工作。 material2 工具提示使用以下语法:我有一个工具提示 这项工作是一次完成还是从没有? 【参考方案1】:

你应该尝试使用event.stopImmediatePropagation();

<span matTooltip="Tooltip!" 
  (mouseenter)="$event.stopImmediatePropagation()" 
  (mouseleave)="$event.stopImmediatePropagation()"
  #tooltip="matTooltip" (click)="tooltip.toggle()">Test</span> 

Plunker Example

【讨论】:

很好的解决方案,可惜材料团队没有给我们一个点击显示选项 我想我只是想出了一个更好的解决方案【参考方案2】:

IMO,更好的解决方案是使用matTooltipDisabled

在调用 show 之前将其设置为 false,在调用 hide 时将其设置为 true

因此您不会因为监听鼠标事件而触发额外的更改检测。 (在这种情况下,我们可以保存2,mouseenter和mouseleave)

【讨论】:

以上是关于显示 mdTooltip 直到单击,再次单击时隐藏的主要内容,如果未能解决你的问题,请参考以下文章

通过单击按钮显示消息,但我如何通过单击按钮隐藏此消息

Div 在使用 ajax 和 django 进行第二次点击后显示/隐藏

当用户点击显示链接时,显示密码,再次点击时隐藏

单击每个字段时如何显示和隐藏离子卡?

在页面加载时隐藏 div/popup 直到单击按钮

加载网页时隐藏导航