Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jquery激活和停用箭头键_Jquery_Textarea_Onfocus - Fatal编程技术网

使用jquery激活和停用箭头键

使用jquery激活和停用箭头键,jquery,textarea,onfocus,Jquery,Textarea,Onfocus,当页面加载以下内容时,我将禁用左右箭头键: $(document).keydown(function(event) { switch(event.keyCode){ case 37: case 39: return false; break; } }); 我想在文本区域或输入字段id处于焦点时重新激活它们,并在该元素不再处于焦点时再次停用它们。您将如何执行此操作?您可以检查事件。target

当页面加载以下内容时,我将禁用左右箭头键:

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

我想在文本区域或输入字段id处于焦点时重新激活它们,并在该元素不再处于焦点时再次停用它们。您将如何执行此操作?

您可以检查
事件。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;
     }
 });

这应该行得通。。但是你真的不应该因为易访问性的原因而这样做

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;
     }
 });

在开关箱中尝试将此作为返回的条件

if(event.target.tagName != "INPUT" &&  event.target.tagName != "TEXTAREA" )
{
   return false;
   break;
  }

出于好奇,为什么要禁用箭头键?我遇到了一个css问题,但我在这里没有找到解决方案。。我找不到比停用箭头键更好的方法了。那是。。。那就像是因为找不到指甲钳而割断了你的手臂。我知道。。我很清楚css解决方案更好。但我没有解决办法。如果你有一个让我知道…你不应该发布一个关于如何使CSS解决方案工作的问题吗?谢谢,我想这是我没有的常见jquery知识。。。再次感谢!