Как отделить событие на родительском элементе от событии на дочернем?

167
06 декабря 2021, 06:10

const parent = document.getElementById('parent'); 
const child1 = document.getElementById('child1'); 
parent.addEventListener('copy', (e) => { 
  console.log('bubbling'); 
  console.log(e.target); // Тут указан child1 в качестве target 
}); 
 
child1.addEventListener('copy', (e) => { 
  console.log('copied!'); 
});
<a href="#" id="parent"> 
  <span id="child1">asdasd</span> 
  <span id="child2">qweqweqw</span> 
</a>

Хочу сделать так: если был выделен и скопирован дочерний элемент, то его обработчик события запускается. А вот если был выделен и скопирован родитель (куда входит в т.ч. дочерний элемент 1, но еще и дочерний 2), то обработчик события для дочернего1 не должен запускаться. Можно было бы смотреть на e.target, но при выделении и копировании родительского контейнера в качестве target устанавливается его первый ребенок - почему так, просто ставится в качестве самого глубокого элемента первый ребенок? При том не важно, с какой стороны выделять и копировать. Можно ли как-то изловчиться?

Уточняю, при копировании дочернего1 должен вылазить алерт, при выделении и копировании родителя (вместе с дочерним1, но и с другими элементами), алерт вылазить не должен.

READ ALSO
Каким способом решить эту задачу?

Каким способом решить эту задачу?

В метод даю массив который состоит из нечетных(четных) чисел, но 1 из чисел четный(нечетный) в каждом массивеМетод должен вернуть единственное...

186
Как обратится к классу, который находится внутри другого класса

Как обратится к классу, который находится внутри другого класса

Доброе утро!) Подскажите пожалуйста, у меняproduct__item используется в нескольких блоках, как указать в js, что добавлять класс нужно лишь тому у кого...

184
Парсинг обьекта Jquery из JSON

Парсинг обьекта Jquery из JSON

Я сохраняю джквери объект который содержит в себе кучу других элементов, в JSON, что-бы хранить его в локальном хранилище, и при загрузке(обновлении)...

231
Как реализовать спрайты не через свойство background?

Как реализовать спрайты не через свойство background?

Никак не могу совладать с одним из элементов при вёрсткеПрошу, собственно, Вашей помощи

295