[英]Wrong event.target when clicking button child element
我有以下元素表示調查中的按鈕:
<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
function 觸發handleChange
function 並通過按鈕的名稱和值存儲一些數據:
const handleChoiceClick = (e) => {
handleChange(e.target.name, e.target.value);
};
這工作正常,但是當我單擊按鈕(圖像或跨度)內的一個子元素時, handleChoiceClick
function 將另一個 event.target 作為參數,並且名稱和值未定義。
解決此問題的最佳方法是什么? 檢查handleChoiceClick
內的event.target
還是有更簡單的方法?
如果您想要掛鈎事件的元素,請使用event.currentTarget
而不是event.target
。 在您的情況下,這將始終是button
元素。
const handleChoiceClick = (e) => {
var buttonElement = e.target.closest('.choice__button')
handleChange(buttonElement.name, buttonElement.value);
};
這可以為您提供所需按鈕的名稱和值,盡管目標是按鈕內的任何其他元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.