s.h*_*sam 5 javascript reactjs
当我单击包含 AnimatedMouse 组件的 div 时,在控制台中记录的事件是 AnimatedMouse 组件的元素之一,而不是 className“animated-mouse”本身的 div。
const AnimatedMouseScroll = () => {
return (
<div class="scroll-msg-container">
<div class="scroll-msg-inner">
<div class="scroll-msg-wheel">
click here
</div>
</div>
</div>
);
}
const EmployerService = () => {
const scrollToNextSectionHandler = (event) => {
console.log("clicked element", event.target)
};
return (
<div className="animated-mouse" onClick={(e) => scrollToNextSectionHandler(e)}>
<AnimatedMouseScroll />
</div>
);
}
ReactDOM.render(<EmployerService />, document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)
target
始终是被单击的最里面的目标元素。(这在 DOM 中是正确的,而不仅仅是 React。)如果您想要已放置事件处理程序的元素,请使用currentTarget
:
console.log("clicked element", event.currentTarget )\n// \xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92^\n
Run Code Online (Sandbox Code Playgroud)\n\n实例:
\n\nconsole.log("clicked element", event.currentTarget )\n// \xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92\xe2\x88\x92^\n
Run Code Online (Sandbox Code Playgroud)\r\nconst AnimatedMouseScroll = () => {\r\n return (\r\n <div class="scroll-msg-container">\r\n <div class="scroll-msg-inner" >\r\n <div class= "scroll-msg-wheel" >\r\n click here\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst EmployerService = () => {\r\n const scrollToNextSectionHandler = (event) => {\r\n console.log("clicked element", event.currentTarget )\r\n };\r\n\r\n return (\r\n <div className="animated-mouse" onClick={(e) => scrollToNextSectionHandler(e)}>\r\n <AnimatedMouseScroll />\r\n </div>\r\n );\r\n}\r\n\r\nReactDOM.render(<EmployerService/>, document.getElementById("root"));
Run Code Online (Sandbox Code Playgroud)\r\n