在Angular中,如何区分程序化点击和用户点击?

时间:2018-10-29 13:34:35

标签: angular javascript-events click

假设我有一个简单的

<li (click)="clicked($event)">click me</li>

然后我该如何在函数中确定事件是通过编程方式触发还是由用户触发?

可以使用jQuery收集这些信息,但是我没有机会仅使用js来实现。

1 个答案:

答案 0 :(得分:4)

您可以检查event.isTrusted属性,以确定如何生成click事件:

  

isTrusted接口的Event只读属性是一个布尔值   当事件是由用户操作生成时为true,否则为false   通过脚本创建或修改事件或通过以下事件调度事件时   dispatchEvent。

clicked(e: Event) {
  console.log(e.isTrusted ? "Clicked by user" : "Clicked programmatically");
}

有关演示,请参见this stackblitz