我想绑定以在escape按下时关闭活动的反应引导弹出窗口。这是代码
escape
_handleEscKey:function(event){ console.log(event); if(event.keyCode == 27){ this.state.activePopover.hide(); } }, componentWillMount:function(){ BannerDataStore.addChangeListener(this._onchange); document.addEventListener("click", this._handleDocumentClick, false); document.addEventListener("keyPress", this._handleEscKey, false); }, componentWillUnmount: function() { BannerDataStore.removeChangeListener(this._onchange); document.removeEventListener("click", this._handleDocumentClick, false); document.removeEventListener("keyPress", this._handleEscKey, false); },
但是,当我按任意键时,控制台中都不会记录任何内容。我也尝试在窗口上以及不同情况下使用’keypress’,’keyup’等来收听,但似乎我做错了。
您应该使用keydown而不是keypress。
keydown
keypress
Keypress通常仅用于根据文档产生字符输出的键
按键
当按下某个键时会触发keypress事件,并且该键通常会产生一个字符值
按下键时会触发keydown事件。