簡體   English   中英

停止傳播所有事件

[英]Stop propagation of all events

我正在嘗試處理用戶的退格鍵按下。 我有 2 個處理程序綁定到一個輸入元素。 由於無法在 onChange 事件處理程序中檢測到按鍵,因此我必須在 onKeyDown 中進行。 我想在按下退格鍵時停止 onChange 事件的傳播(並在 onKeyDown 事件處理程序中處理)。 任何想法如何實現這一目標? 謝謝!

If you has Select Option: When you click on select tag, onChange and onClick event is fired. I solved this by creating a onClick handler side onChange handle and then calling e.stopPropogation().

<select onClick ="St(event)" onChange ="Tc(event)" >
     <option>Case</option>
</select>

St(event) {
  event.stopPropagation();
  console.log('Next');
}

Tc(event) {
  event.stopPropagation();
  console.log('Nex here');
}

如果您試圖防止退格,您可以將輸入的值存儲在 state 中並將其作為道具傳遞給輸入,並在輸入的 onChange 中將 e.target.value 與存儲在 state 中的值進行比較並更新 Z9ED39E285694EF56A3E 變量

     
  const [value, setValue] = useState("");

  const checkValue = (newValue) => {
    if (value.length < newValue.length) setValue(newValue);
  }; 
    
  <input value={value} onChange={(e) => checkValue(e.target.value)} />

正如我認為有可能以這種方式做到這一點。 您可以創建一些輔助變量/屬性並在 onKeyDown 處理程序中將 keyCode 設置為它。 然后你可以在任何你想要的地方有條件地使用它(對我來說,在 onChange 事件處理程序中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM