2015-07-20 210 views
24

我尝试获取点击相对于元素的位置,但事件没有offsetX。React的mouseEvent没有offsetX/offsetY

onClick(e) { 
    console.log(e.offsetX) // returns undefined 
    console.log(e.target.offsetX) // returns undefined 
} 

render() { 
    return <img src='http://placehold.it/1000x500' onClick={this.onClick} /> 
} 

如何获取点击元素的位置?

回答

44

哦,好吧,我明白了。 我从e.nativeEvent.offsetX得到它。这是正确的方法吗?

+3

是的,这是正确的方法。由react返回的事件对象是一个反应SyntheticEvent,它封装了普通的JavaScript事件对象并包含一些跨浏览器的便利。但是,正如您发现的,本地事件仍然可以在e.nativeEvent上访问。 –

+0

作品,非常感谢 –

+0

@MikeDriver只是这样做:'onClick = {(e)=> this.onClick(e,e.nativeEvent.offsetX)}' –