javascript - React 中的 OnClick 事件

标签 javascript reactjs onclick

我有一个非常奇怪的问题。

我在 react 中有以下链接

<a onClick={this.props.onClick} name={this.props.name} style={{cursor: 'pointer', display: 'block', textAlign: 'center'}}>
       <span className="regHeaderText">{this.props.value}</span>
       <FontAwesome name={this.props.icon} className="faIcon"/>
</a>

它看起来像:

enter image description here

但问题是,如果我单击文本NEXT或 Font Awesome 图标,我会得到未定义作为链接名称。

只有当我单击文本左侧的某个位置NEXT时,才会在这个黄色框中获得正确的名称。

如果我创建链接而不是跨度,例如:

<a onClick={this.props.onClick} name={this.props.name} style={{cursor: 'pointer', display: 'block', textAlign: 'center'}}>
     <a onClick={this.props.onClick} name={this.props.name} className="regHeaderText">{this.props.value}</a>
     <a onClick={this.props.onClick} name={this.props.name}><FontAwesome name={this.props.icon} className="faIcon"/></a>
</a>

然后就可以了,但是有没有什么解决方案可以在不创建链接内链接的情况下实现呢?

编辑

onClick: function (event) {
    event.preventDefault();
    var field = event.target.name;
    alert("The name is : " + field);
}

最佳答案

您可能在 onClick 处理程序中使用 e.target。当您单击跨度时,事件会冒泡到链接上的处理程序,但目标将是跨度而不是 a。

要避免此问题,您可以使用链接名称创建绑定(bind)的 onClick

<a onClick={this.props.onClick.bind(this, this.props.name)}

onClick 方法的第一个参数是名称,第二个参数是事件。

关于javascript - React 中的 OnClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37087788/

相关文章:

javascript - 无法将 addEventListener onClick 添加到 SWFObject

javascript - 如何将日期字符串转换为特定时区

Javascript 在具有特定 id 的行后将行插入表中

javascript - 在 render 方法中使用 promise 渲染 React 组件

javascript - 如何显示 react 选择的工具提示?

javascript - 单击<选择>提交表单

javascript - 从 OrderedMap 中删除元素并保持其顺序

javascript - 如何将 td 插入数组 es6 Reactjs

javascript - facebook 按钮不调用 onClick() - ReactJS

javascript - 如何在 angular 2 *ngFor 循环中使点击事件可选