2012-02-02 38 views
3

我在我的网站上使用了一些热键,但是当用户在搜索表单或里面发表评论时。我想禁用它们。知道输入是否正在使用并禁用热键(jquery)

对我来说最好的做法是什么?由于

我热键的例子:

$(document).keydown(function(e) 
{ 
    if (e.which == 40 || e.which == 74) // next post 
    { 
     return scroll('next'); 
    } 

    if (e.which == 38 || e.which == 75) // prev post 
    { 
     return scroll('prev'); 
    } 
}); 

回答

3

您可以检查event.target元素。如果该元素来自类型INPUT,则可能需要省略处理程序代码。可能看起来像

$(document).keydown(function(e) 
    { 
     if(e.target.nodeName !== 'INPUT') { 
      if (e.which == 40 || e.which == 74) // next post 
      { 
       return scroll('next'); 
      } 

      if (e.which == 38 || e.which == 75) // prev post 
      { 
       return scroll('prev'); 
      } 
     } 
}); 
+0

完美,非常感谢你。 – Tahola 2012-02-02 11:35:11

2

您可以检查是否(触发输入字段内的事件)e.target.nodeName === INPUT并采取相应的行动

相关问题