react-click event has empty event.target
react-click event has empty event.target
如何在函数showChildren
中获取onClick事件div.id
的目标?
期望的结果:
div.id
实际结果:
<react></react>
相关剃须刀
iterateNavigationObject: function(item) {
var titleStyle = {
'backgroundColor': 'grey'
};
return (
<div>
<ul>
<li style={titleStyle}>
<div id="asdf" onClick={this.showChildren}>{item.text}</div>//I want the id of this element
<ul>
{item.items.map(this.iterateNavigationSubitems, this)}
</ul>
</li>
</ul>
</div>
);
},
showChildren: function(){
console.log(event.type);//OUTPUT: 'react-click'
console.log(event.target);//OUTPUT: <react></react>
},
更改点击处理程序签名
showChildren: function(event) {
console.log(event.type);//OUTPUT: 'react-click'
console.log(event.target);//OUTPUT: <react></react>
},
解释:
您可能希望这适用于香草 JS。Internet Explorer 提供了一个全局对象 window.event,它引用最后一个事件。在IE9之前,处理程序中没有参数。这仅适用于IE(可能也适用于其他浏览器)。React 使用它自己的合成事件,因此不要指望这会起作用。React 将event
作为第一个参数传递给所有事件侦听器。
无论如何,你不应该在 React 中依赖它,也不应该依赖 vanilla JS。始终接受event
作为函数参数。
编辑
要传递 ID,请使用高阶函数,该函数返回实际的事件侦听器。 更新对此的调用
<div onClick={this.showChildren("asdf")}>{item.text}</div>
然后,更新侦听器以接受 ID。您可以忽略此解决方案中的先前答案。
showChildren(id) {
return () => {
console.log(id);
}
}
相关文章:
- jQuery event.target is_a_child_of(element)
- 面料:“;鼠标:向下”;在event.target中未返回对象
- 使用event.target.classlist区分按钮颜色
- AngularJS复选框通过$event.target更改问题
- 当event.target返回子元素时,如何只获取click事件的父元素
- 如何使用event.target访问特定子项及其文本
- 获取'event.target.id'作为字符串
- 火狐浏览器与 event.target.id 的问题
- 如何使用angularJS和jqlite测试event.target.hasClass()
- react-click event has empty event.target
- event.target.id 不在火狐上工作
- event.target在手机上的工作方式是否不同
- 无法获取使用 event.target.id 触发事件的输入 ID
- 为什么我的 event.target 数据在 chrome 中不起作用
- event.target 未提供所需的输出
- event.target 中未在 Firefox 中定义,在 IE 中出现小错误
- 无法记录 event.target(使用 Chrome)
- Javascript 错误:TypeError:“null”不是 safari 上的对象(评估“event.target
- 随机、if 语句和 event.target
- $(this) vs e.target or event.target in jquery