你好
我已經建立了一個搜索,每次用戶輸入單詞時它都會呈現新的復選框,但新的復選框不像以前那樣作業,所有事件偵聽器都無法處理新的復選框,當我點擊復選框時,他們只是沒有反應,但在舊的,直到搜索將呈現這個他們正常作業
//search in checkbox data
const checkOptions = (container, value, containerId) => {
for (let i = 0; i < props.unique[containerId].length; i ) {
let item = props.unique[containerId][i];
if (
props.unique[containerId][i] !== null &&
props.unique[containerId][i].includes(value)
) {
element = (
<label
onClick={(e) => {e.stopPropagation(); ifAnyChecked(e);}} key={i}>
<input onClick={(e) => {tableSearch(e);}} type="checkbox" value={item ? item : "empty"}/>
{item && item.length > 28 ? (
handleCheckbox(item)
) : (
<p>{item}</p>
)}
</label>
);
tempData = ReactDOMServer.renderToString(element);
}
}
container.innerHTML = tempData;
};
知道發生了什么嗎?
uj5u.com熱心網友回復:
您是否嘗試過使用onChangeevent 而不是onClick?據我所知,輸入型別復選框沒有像onClick.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox
uj5u.com熱心網友回復:
我曾經在使用 Vanilla JS 時遇到這個問題,每當我渲染一個新元素時,該元素就不會觸發我的事件。那是因為它們是在運行時生成的,因此事件未系結到該元素。現在我認為這件事也發生在這里。所以我更改了您的代碼并將其置于一個狀態,現在它正在作業。我希望我有所幫助。如果這不是您正在尋找的解決方案,請告訴我,但它可以解決您的問題
我將 html 放在一個狀態陣列中,然后將它映射到newCheckBoxdiv 中。我將輸入更改為帶fieldValue狀態的受控輸入。最后,我將新的復選框警報從更改onClick={alert("doesn't goes in")}為onClick={() => alert("I think its working now right?")}
這里是完整的代碼沙箱 https://codesandbox.io/s/polished-sea-vedvh?file=/src/App.js
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341508.html
標籤:javascript 反应 dom
上一篇:單擊按鈕后如何從按鈕中獲取值
