First, I'm sorry to my deficient english.
.
I want write code if click anywhere except .do-not-click-here
, call myFunction()
.
So I wrote code like below.
document.addEventListener('click', (event) => {
if(event.target.classList.includes('do-not-click-here')) {
myFunction();
}
)
But this code return error "Property 'classList' does not exist on type 'EventTarget'."
.
So I tried debugging through console.log
.
.
When I tried console.log(event);
received event.target
as a javascript object. (I want it)
.
When I tried console.log(event.target);
received event.target
as an element(?). so event.target.classList
is not working. (Maybe)
.
How to get event.target.classList
?
or is there a better way than I thought for I wanted?
Other answers are good, this is just a more-angular-style alternative. You can create a global click listener in any of your components this way:
@HostListener('document:click', ['$event.target'])
onClick(element: HTMLElement) {
if(element.classList.contains('do-not-click-here')) {
myFunction();
}
}
<button (click)="onClick($event)">click</button>
export class Component{
onClick(event){
if(event.target.classList.contains('do-not-click-here')) {
myFunction();
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With