Как прослушать родительский клик JS? - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть структура HTML:

<div class="parent">
   <div class="child_1"><div class="child_1_1"></div></div>
   <div class="child_2"></div>
</div>

Итак, когда я нажимаю на родительский элемент, я вызываю функцию:

 public openAccordion(event: any): void {
    if (event.target.className == "parent") {
       // TODO
    }
  }

Чтобы передать функцию, я передаю event и проверяю, содержит ли онаопределенный класс: className.

Но когда я щелкаю дочерними элементами, это условие не работает, поэтому как всегда получить родительский контейнер и проверить его класс?

Я назначаю так:

<div(click)="openAccordion($event)">

1 Ответ

0 голосов
/ 05 декабря 2018

Что здесь происходит, так это то, что ваше событие клика будет всплывать до родительского объекта, где вы обрабатываете событие.В объекте события DOM у вас есть разные цели события для разных целей.

Вместо использования event.target вы можете попытаться использовать event.currentTarget, чтобы получить элемент, которым является обработчик событияприсоединен к.

Angular $event должен содержать содержимое исходного события DOM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...