Неправильное событие.цель при нажатии кнопки дочернего элемента

#javascript #reactjs

#javascript #reactjs

Вопрос:

У меня есть следующий элемент, представляющий кнопку в опросе:

 <button name={id} value={value} onclick={handleChoiceClick} className="choice__button">
   <img src={image} className="choice__button-image"/>
   <span className="choice__button-title">Button title</span>
</button>
 

handleChoiceClick Функция запускает handleChange функцию и сохраняет некоторые данные по имени и значению кнопки:

 const handleChoiceClick = (e) => {
   handleChange(e.target.name, e.target.value);
};
 

Это работает нормально, но когда я нажимаю на один из дочерних элементов внутри кнопки (изображение или диапазон) handleChoiceClick , функция получает другое event.target в качестве параметра, а имя и значения не определены.

Каков наилучший способ решить эту проблему? Проверка event.target внутри handleChoiceClick или есть более простой способ?

Комментарии:

1. Я не нахожу простого dupetarget для этого. Должен быть один, но … 🙂

Ответ №1:

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

Комментарии:

1. Вот и все! Спасибо

Ответ №2:

 const handleChoiceClick = (e) => {   
   var buttonElement = e.target.closest('.choice__button')
   handleChange(buttonElement.name, buttonElement.value);
};
 

Это может дать вам имя и значение требуемой кнопки, хотя целью является любой другой элемент внутри кнопки.