изменить эти две функции в следующем:
_onPageClick: function(e) {
e.stopPropagation()
if (this.refs.contextMenu.getDOMNode() !== e.target){
this.contextMenu.setState({contextMenuLocation: ''});
}
},
componentDidMount: function(){
this.contextMenu = this.refs.contextMenu;
document.addEventListener('click', this._onPageClick)
},
все, что мы должны сделать, чтобы переместить _onPageClick
из оберточной дел до слушателя на документе. приведенный выше код закроет меню, если пользователь щелкнет в любом месте, которое не находится в контекстном меню. если вы хотите, чтобы закрыть, если пользователь нажмет контекстное меню, а, затем измените _onPageClick
на:
_onPageClick: function(e) {
e.stopPropagation()
this.contextMenu.setState({contextMenuLocation: ''});
}
(также, обертка ДИВ больше не должен иметь обработчик OnClick) http://jsfiddle.net/yikevinqu/eeu9unhm/1/
У вашей скрипки есть ошибки –
Вы хотите, чтобы она исчезла, если пользователь еще раз щелкнул по меню? – PhilVarg