0

当页面加载以下内容时,我正在停用左右箭头键:

$(document).keydown(function(event) {
     switch(event.keyCode){
        case 37:
        case 39:
            return false;
            break;
     }
 });

我想在 textarea 或输入字段 id onfocus 时重新激活它们,并在该元素不再处于焦点时再次停用它们。你会怎么做?

4

3 回答 3

2

你可以检查一下event.target

$(document).keydown(function(event) {
    if (event.target instanceof HTMLInputElement 
     || event.target instanceof HTMLTextAreaElement)     { 
       return true;
    }
     switch(event.keyCode){
        case 37:
        case 39:
            return false;
            break;
     }
 });
于 2012-08-16T06:00:41.703 回答
0

这应该可行..但出于可访问性的原因,您真的不应该这样做。

var blockKeys = true; //Set this to true or false as needed
$(document).keydown(function(event) {
     switch(event.keyCode){
        case 37:
        case 39:
            if(blockKeys === true) {
                event.PreventDefault();
            }
            break;
     }
 });
于 2012-08-16T06:01:12.993 回答
0

试试这个作为你在开关盒中返回的条件

if(event.target.tagName != "INPUT" &&  event.target.tagName != "TEXTAREA" )
{
   return false;
   break;
  }
于 2012-08-16T06:23:58.043 回答