@Mcrx

Child кнопки не дает вызвать onclick, как исправить?

Добавляю так иконку
button.innerHTML = '<i class="fa fa-pencil"></i>';
    button.onclick = function (e) {
      if (this === e.target) {
        var id = e.target.parentNode.parentNode.id;

        console.log(id);
      }
    }

пока спасаюсь такой костыльной проверкой,
нажимаю по кнопке и в ивент попадает иконка, как сделать чтоб можно было нажимать по всей кнопке и при этом не трогать иконку?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
Stalker_RED
@Stalker_RED
<button id="foo">
  some text <i>[icon]</i>
</button>

$('button').on('click', function (e) {
  console.log(this); // элемент, на который был навешен обработчик
  console.log(e.currentTarget); // элемент, на который был навешен обработчик
  console.log(e.target); // элемент, по которому кликнули
  console.log(e.target.closest('button').id); // id
  console.log(e.currentTarget.id); // id
  console.log(e.currentTarget.closest('button').id); // id
  console.log(this.id); // id
})
Ответ написан
Комментировать
nikichv
@nikichv
Frontend dev. Current stack: Next.js/RTK/Saga
Просто исправьте target на currentTarget.
e.currentTarget.parentNode.id
Пример.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы