2017-07-19 64 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 
     } 
     }