我创建了一个Angular指令,如果满足特定条件,该指令会自动禁用按钮。此外,如果用户将鼠标悬停在禁用的按钮上,则应该显示一个小的工具提示。为了实现这一点,我使用了@HostListener
Angular的指令:
@HostListener("mouseenter")
show() {
this.tooltipService.showTooltip(this.tooltipRef, this.text);
setTimeout(() => this.tooltipService.hideTooltip(this.tooltipRef), 2000);
}
这在Firefox上可以正常工作,但在Chrome上,mouseenter
禁用该按钮时不会引发该事件。
我对这种不一致感到非常困惑,并且找不到有关此问题的任何文档。
我仍然可以通过任何方式mouseenter
在Chrome上访问活动吗?
这不是特定于角度的。它是内置的。Firefox和Chrome对此规范的处理方式未达成一致。
禁用的表单控件必须防止在用户交互任务源上排队的任何单击事件在元素上分派。
好像Chrome禁用了所有鼠标事件,而Firefox仅禁用了Click事件。
在whatwg上有一个未解决的问题:https : //github.com/whatwg/html/issues/2368
如果您想让Firefox不要在禁用按钮上触发这些事件,则可以将其添加到CSS中
input[disabled],
button[disabled] {
pointer-events: none;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句