машинопись addEventListener используя барботирование - PullRequest
0 голосов
/ 24 апреля 2020

У меня вопрос ... Есть ли возможность добавить один EventListener для кликов в TS, как в JS - bubbling . Для одного сегмента в HTML только один прослушиватель «onclick», имеющий несколько дочерних элементов, которым необходимо вернуть значение.

Я нашел этот код JS, но не могу его использовать. Может кто-нибудь помочь ?? ... так как кажется несколько избыточным писать несколько слушателей для одного и того же сегмента ....

const preview = evt => {
  const element = evt.target.closest('div[draggable]');
  if (element != null) {
    const color = element.id;
    document.querySelector('#clicked').textContent = `Clicked ${color}`;
  }
};

document.querySelector('section').addEventListener('click', preview);
div[draggable] {
  width: 2em;
  height: 2em;
  line-height: 2em;
  margin: 1em;
  text-align: center;
  font-weight: bold;
  cursor: move;
}

#red {
  background: red;
}

#yellow {
  background: yellow;
}

#green {
  background: green;
}
<section>
  <div id="red" draggable="true">
    <span>R</span>
  </div>
  <div id="yellow" draggable="true">
    <span>Y</span>
  </div>
  <div id="green" draggable="true">
    <span>G</span>
  </div>
</section>

<p id="clicked">Click a box</p>
...