首先在元素中定义一个右击事件,注意在react中用refs来定义样式,这样不会因元素渲染而导致菜单栏展示延迟过长:
render(){
return(
<div>
<button onMouseUp={this.rigClick}>右击展示自定义菜单栏</button>
<div ref="menu" style={{ position: "absolute", width: 100, height: 200,display:"none"}}>菜单栏</div>
</div>
)
}
rigClick = (e) => {
//禁用浏览器默认事件
var elef = e.clientX
var etop = e.clientY
var menu=this.refs.menu
document.oncontextmenu = function(e){
return false
//或者 e.preventDefault()
}
if (e.button == 2) {
menu.style.left = elef
menu.style.top = etop
menu.style.display='block'
}
}