javascript - 用于外部点击的 @HostListener OnClick 在 Firefox 中不起作用

标签 javascript angular typescript firefox onclick

@HostListener OnClick 在 Firefox 中不起作用。 我尝试了 onClick、onclick 和 onGlobalClick。他们都在 chrome 中工作,但在 firefox 中没有一个。 这是我的代码:

constructor(private elRef: ElementRef, private renderer: Renderer2) { }

@Output() offClick = new EventEmitter();

@HostListener('document:click', ['$event.path'])
public onGlobalClick(targetElementPath: Array<any>) {
  const elementRefInPath = targetElementPath.find(e => e === this.elRef.nativeElement);
  if (!elementRefInPath) {
    this.offClick.emit(1);
  }
}

最佳答案

这是我在所有浏览器中测试过的并且有效:

 @HostListener('document:click', ['$event', '$event.target'])
    onClick(event: MouseEvent, targetElement: HTMLElement): void {
        if (!targetElement) {
            return;
        }
        const clickedInside = this.elementRef.nativeElement.contains(targetElement);
        if (!clickedInside) {
            this.clickOutside.emit(event);
        }
    }

关于javascript - 用于外部点击的 @HostListener OnClick 在 Firefox 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45994882/

相关文章:

javascript - 为什么 Vite 会创建两个 TypeScript 配置文件 : tsconfig. json 和 tsconfig.node.json?

typescript - 在 Typescript 中,如何在初始化后将键入的值转换为文字值?

javascript - 如何防止我的页面在链接到 anchor 时被重新加载?

javascript - 如何更改谷歌饼图中的文本 'no data'

java - 请求中不存在 'Access-Control-Allow-Origin' header

Angular2 添加 PrimeNG 组件

Angular 6 代码覆盖率......如何在应用程序的代码覆盖率中排除本地库?

javascript - Node.js (VS Code) 中的环境变量未定义

javascript - https 请求基本认证 node.js

Angular 10 严格模式 : AbstractControl vs FormControl