react js中的onClick事件选择内部组件中存在的元素的子元素而不是父元素本身

赫萨姆

当我单击包括AnimatedMouse组件的div时,在控制台中登录的事件是AnimatedMouse组件的元素之一,而不是className为“动画鼠标”本身的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"));
<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>

TJ人群

target始终是被点击的最里面的目标元素。(这在DOM中是正确的,而不仅仅是React。)如果您希望将事件处理程序置于其中,请使用currentTarget

console.log("clicked element", event.currentTarget )
// −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−^

现场示例:

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.currentTarget )
    };

  return (
      <div  className="animated-mouse"  onClick={(e) => scrollToNextSectionHandler(e)}>
    <AnimatedMouseScroll />
  </div>
       );
}

ReactDOM.render(<EmployerService/>, 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>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查React的父元素中是否存在子元素?

覆盖React组件中的内部元素属性

在 React-Native 中,Android 父元素的内部子元素肯定定位在要隐藏的父元素之外

在React的子组件中取消父组件的onClick事件

在React组件中获取子元素的高度

React.JS中的无效组件元素

react:onClick-仅获取被点击的元素,而不是子元素

如何检查clicked元素是否与React中的onClick事件相同?

React:当子组件中发生onClick事件时如何在父组件中触发事件

子元素单击也会触发父元素-React.js

从React组件中按文本选择DOM元素

在React中重新渲染选择元素后触发onChange事件

HTML元素不使用React JS中的按钮的onClick事件呈现

从React JS中的onClick事件获取对象数据和目标元素

React JS嵌套元素都使用相同的onClick事件,并且子事件不起作用

React 在 ResponsiveReactGridLayout 中获取父元素的大小

React.js-显示/隐藏组件中动态生成的元素

React.js-在点击事件中查找映射元素的ID

在react.js中渲染新元素onClick

React:通过单击父组件触发子组件中的事件

如何关注导入的React组件中的元素?

元素通过 React 中的组件溢出

在React组件中动态创建元素

在React Accordion组件中关闭活动元素

React-获取父组件的子组件中存在的引用

在React中的无状态函数组件中选择React中的元素?

React父组件中的onClick事件不起作用

在React中访问子元素的DOM节点

在 React 中复制元素