【发布时间】:2021-11-21 02:08:01
【问题描述】:
我正在尝试处理鼠标事件中链接的可见性, 当用户将鼠标悬停在链接上时,链接应该是可见的,并且在 mouseout 上应该隐藏链接。 出于某种原因,我可以为元素添加隐藏样式,但是一旦元素被隐藏,我就无法将其更改为鼠标悬停时可见。
<table class="table table-bordered">
<caption style="caption-side: top; text-align: center;">Food Items</caption>
<tbody>
<tr *ngFor='let food of foods'>
<td>
<a hideShowElement [routerLink]="" class="link-danger" (click)='deleteFoodItem(food.id)'>DELETE</a>
</td>
</tr>
</tbody>
</table>
我的指令,
import { Renderer2 } from '@angular/core';
import { Directive, ElementRef, HostBinding, HostListener } from '@angular/core';
@Directive({
selector: '[hideShowElement]'
})
export class HideShowDirective {
@HostBinding('style.visibility') visibility: string;
constructor(private elementr: ElementRef, private renderer: Renderer2) {
}
@HostListener('mouseover')
onMouseOver() {
this.renderer.setStyle(this.elementr.nativeElement, 'visibility', 'visible');
}
@HostListener('mouseleave')
onMouseLeave() {
this.renderer.setStyle(this.elementr.nativeElement, 'visibility', 'hidden');
}
}
【问题讨论】:
-
我不想用颜色和禁用属性做一个技巧。我想隐藏它并显示它。