gpt4 book ai didi

javascript - 如何检查单击的元素是否与 React 中的 onClick 事件相同?

转载 作者:行者123 更新时间:2023-12-01 21:51:59 26 4
gpt4 key购买 nike

假设我有以下代码:

const checkParent = e => {
console.log(e.target);
}

<Parent onClick={e => checkParent(e)}>
<ChildOne>
<ChildTwo>
</Parent>

如何检查是否单击了 e.target<Parent>元素,不是它的子元素之一?

最佳答案

您可以将 e.targete.currentTarget 进行比较。后者是处理程序实际附加到的元素。 (这在 React 中不是字面意思,因为 React 使用委托(delegate)处理程序,但 React 的合成事件让它看起来如此。)

因此,如果 e.target === e.currentTarget,它就是处理程序“打开”的元素。

实例:

function ChildOne() {
return <div>Child One</div>;
}
function ChildTwo() {
return <div>Child Two</div>;
}
function Parent({children, onClick}) {
return (
<div onClick={onClick}>
Parent text
{children}
More parent text
</div>
);
}
function checkParent(e) {
console.log(e.target === e.currentTarget ? "Yes" : "No");
}

ReactDOM.render(
<Parent onClick={e => checkParent(e)}>
<ChildOne />
<ChildTwo />
</Parent>,
document.getElementById("root")
);
<div id="root"></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.10.2/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.10.2/umd/react-dom.production.min.js"></script>

关于javascript - 如何检查单击的元素是否与 React 中的 onClick 事件相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com