我想检查单击时的特定元素是否具有指定的类。我知道您可以绑定一个通过的点击处理程序e.target
给处理程序。我的想法是得到e.target.classList.indexOf(this.myClass) > -1
查看它是否有该类,但出现以下错误。
e.target.classList.indexOf 不是函数
我认为这是因为classList
is an 类数组对象,而不是实际的数组。有没有一种更简单的方法可以从 React 中单击的元素获取类列表,而无需执行所有“切片调用”魔法?
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myClass = 'my-class';
}
handleClick(e) {
// check if e.target class has this.myClass
if (/* logic */) {
// perform action
}
}
render() {
return <div onClick={this.handleClick.bind(this)} className={this.myClass + ' other-class'}>
<div>My Component</div>
</div>
}
}
如何从 React 事件系统中单击的“目标”元素获取类数组?
Element.classList
提供了一个contains()
应该可以解决您的问题的函数:
e.target.classList.contains(this.myClass)
Docs https://developer.mozilla.org/en-US/docs/Web/API/Element/classList
另请注意this
可能不是您在事件处理程序中所认为的那样,除非您显式绑定函数上下文,例如使用bind()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)