2011-09-19 72 views
0

我遇到的情况,首先我需要禁用键盘方向键和一些处理后再次启用它,为了这个,我写这篇文章的jQuery功能禁用和启用Arrowkeys由JavaScript

function DisableArrowKeys() { 
     var ar = new Array(37, 38, 39, 40); 
     $(document).keydown(function(e) { 
      var key = e.which; 
      if ($.inArray(key, ar) > -1) { 
       e.preventDefault(); 
       return false; 
      } 
      return true; 
     }); 
    } 

此功能可以禁用方向键经过一些处理,我需要让箭头键为此我做了类似下面

function EnableArrowKeys() { 
     var ar = new Array(37, 38, 39, 40); 
     $(document).keydown(function(e) { 
      var key = e.which; 
      if ($.inArray(key, ar) > -1) {    
       return true; 
      }   
     }); 
    } 

在功能上的变化,但,当我们调用该函数不启用arrowkeys。

回答

0

你可以这样做:

var DisableArrowKeys = function(e){ 
    if ($.inArray(e.which, ar) > -1) { 
     e.preventDefault(); 
     return false; 
    } 
    return true; 
} 
$(document).bind("keydown", DisableArrowKeys); 

,然后取消绑定:

$(document).unbind("keydown", DisableArrowKeys); 
3

你需要一个参考保持你的禁用功能,并解除绑定,当你准备好再次接受方向键。例如:

var ar = new Array(37, 38, 39, 40); 
var disableArrowKeys = function(e) { 
    if ($.inArray(e.keyCode, ar)>=0) { 
     e.preventDefault(); 
    } 
} 

$(document).keydown(disableArrowKeys); 

// then when you are ready to enable, unbind the function... 
$(document).unbind('keydown', disableArrowKeys);