小编典典

停止鼠标事件传播

all

在 Angular 中停止鼠标事件传播的最简单方法是什么?

我应该通过特殊$event对象并调用stopPropagation()自己还是有其他方式。

例如在 Meteor 中,我可以简单地false从事件处理程序返回。


阅读 73

收藏
2022-04-13

共1个答案

小编典典

如果您希望能够将其添加到任何元素而不必一遍又一遍地复制/粘贴相同的代码,您可以创建一个指令来执行此操作。它很简单,如下所示:

import {Directive, HostListener} from "@angular/core";

@Directive({
    selector: "[click-stop-propagation]"
})
export class ClickStopPropagation
{
    @HostListener("click", ["$event"])
    public onClick(event: any): void
    {
        event.stopPropagation();
    }
}

然后只需将其添加到您想要的元素中:

<div click-stop-propagation>Stop Propagation</div>
2022-04-13