reactjs - 如何在可点击的卡片上创建两个 onclick 事件以做出反应
问题描述
我知道以前有人问过这类问题,但在这里我有一个问题,我有一个可点击的卡片和卡片中的一个组件,它是按钮,onclick 整张卡片正在被点击,但我想要一个按钮在点击时被点击按钮和卡片 onclick 卡片。我怎样才能呈现这两个事件?我如何为这两个事件使用目标?我是新手反应,有人可以帮我渲染两者。
Current onclick code:
handleClick = (event) => {
console.log("cards click");
event.preventDefault();
};
handleSubmit(event) {
console.log("button inside card click");
const target = event.target;
}
解决方案
当一个事件发生在一个元素上时,它首先在其上运行处理程序,然后在其父级上运行,然后一直在其他祖先上运行。
这个过程称为事件冒泡,在此处了解更多信息。
要解决您的问题,您必须event.stopPropagation()
在按钮的事件处理程序中调用。
export default function App() {
function handleClick(event) {
console.log("cards click");
}
function handleSubmit(event) {
event.stopPropagation(); // notice this
console.log("button inside card click");
}
return (
<div className="card" onClick={handleClick}>
<button onClick={handleSubmit}>BUTTON INSIDE CARD</button>
</div>
);
}
推荐阅读
- module - 在 Rust 中使用模块内部的模块
- javascript - TypeError:无法读取未定义的属性“textContent”
- bash - 如何在更新 conda 后从终端提示符中删除(基础)
- javascript - 阅读在 javascript vanilla 中创建的元素时出现问题?
- angular - 基础组件的 Angular 使用模板
- html - 如何正确设置不同断点处的 div 顺序?
- tr - QTranslator tr() - 初始空格有问题吗?
- javascript - 在列表项中反应 useRef 未定义
- sql - SQL 不可修复的参数嗅探?SSMS 需要几秒钟,SSRS 需要几分钟
- python - 计算平均中位数和标准差返回字符串