我想禁用鼠标悬停效果,并在单击时触发mdTooltip,在再次单击时禁用它。这是否可能?我认为.toogle()方法是正确的工具,但不幸的是它起到了相反的作用。
<div style="text-align: center;">
<span matTooltip="Tooltip!" #tooltip="matTooltip" (click)="tooltip.toggle()">Test</span>
</div>
我想禁用鼠标悬停效果,并在单击时触发mdTooltip,在再次单击时禁用它。这是否可能?我认为.toogle()方法是正确的工具,但不幸的是它起到了相反的作用。
<div style="text-align: center;">
<span matTooltip="Tooltip!" #tooltip="matTooltip" (click)="tooltip.toggle()">Test</span>
</div>
你应该尝试使用event.stopImmediatePropagation();
<span matTooltip="Tooltip!"
(mouseenter)="$event.stopImmediatePropagation()"
(mouseleave)="$event.stopImmediatePropagation()"
#tooltip="matTooltip" (click)="tooltip.toggle()">Test</span>
我认为更好的解决方案是使用matTooltipDisabled
在调用show之前将其设置为false
,在调用hide时将其设置为true
这样你就不会因为监听鼠标事件而触发额外的变化检测。(在这种情况下,我们可以节省2个事件,即mouseenter和mouseleave)