javascript - 如何将 event.target 作为 Angular 2 中的对象获取?

标签 javascript angular typescript

首先,我很抱歉我的英语不好。

.

如果单击除以外的任何地方,我想编写代码。请不要单击此处,调用myFunction()

所以我写了如下代码。

document.addEventListener('click', (event) => {
  if(event.target.classList.includes('do-not-click-here')) {
    myFunction();
  }
)

但是此代码返回错误“类型‘EventTarget’上不存在属性‘classList’。”

.

所以我尝试通过 console.log 进行调试。

.

当我尝试 console.log(event);

收到 event.target 作为 javascript 对象。 (我想要)

.

当我尝试 console.log(event.target);

收到 event.target 作为一个元素(?)。所以 event.target.classList 不工作。 (也许)

.

如何获取event.target.classList

或者有比我想的更好的方法吗?

最佳答案

其他答案都不错,这只是一个更有棱 Angular 的替代方案。您可以通过这种方式在任何组件中创建全局点击监听器:

@HostListener('document:click', ['$event.target'])
onClick(element: HTMLElement) {
    if(element.classList.contains('do-not-click-here')) {
        myFunction();
    }
}

关于javascript - 如何将 event.target 作为 Angular 2 中的对象获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42719991/

相关文章:

typescript - 如何从 angular2 的构造函数传递字符串参数或数字

typescript - 如何在 typescript 中使用 singleton() 在构造函数中传递值?

mongodb - Mongoose & TypeScript - 属性 '_doc' 在类型 'IEventModel' 上不存在

typescript - 我可以使用 Typescript 泛型来过滤对象中的键吗?

javascript - javascript 中的参数作为全局变量

javascript - 如何在 Internet Explorer 8 或更早版本上查看我创建的网页?

angular - 在不导航的情况下在 url 中添加/更改可选参数(矩阵表示法)

javascript - 如何检查字符串是否存在并更改另一个元素的字符串?

javascript - POST 成功后 Ajax 重定向到另一个页面

angular - 如何在 Storybook 中使用相对 Angular 分量?