2017-07-19 39 views
0

我的网站是为了通过按下键盘上的按键进行导航时禁用键盘事件:进入\+-,等等...我的问题是,我有textAreas,当我按下这些按钮时,如果选择了textArea,则键入和按钮同时工作。使用textarea的

我认为解决这个问题的最好方法是使用某种布尔值。我试图使用if(!x.hasFocus()){ allow buttons to be used},但是这个布尔值只适用于整个文档而不适用于特定的文本区域。

那么,只有当用户正在访问textArea时,如何禁用键盘按下的事件侦听器?

我希望用户能够使用进入\+-使用textarea的时候,但一旦textarea的不使用这些按钮应该做的某些功能,这是我我正在使用addEventListener(“keyup”,function(){...});

+1

你可能想看看[event.stopPropagation()](https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation)。使用是这样的,以便事件停止冒泡到达textArea元素。 –

+0

我意识到我可以在检查document.activeElement.tagNames时使用if语句===“TEXTAREA” – joe55460

回答

0
document.addEventListener("keyup", function(event){ 
     var typing; 
     if(document.activeElement.tagName === "TEXTAREA"){ 
     typing = true; 
     } else{typing = false;} 

     if(document.getElementById("body").style.display === "block" && 
document.getElementById("middle").style.display === "none"){ 
     if(counter < divs.length && event.keyCode === 187 && !typing){ 
      //do things 
     } 
     }