2015-07-20 205 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)}' –