2016-07-22 107 views
0

我有这个JavaScript,让我放置快捷方式,但我想在textarea的输入停用他们在textarea的输入禁用快捷

//press A for back to top 
jQuery(document).keydown(function(e){ 
    var target = e.target || e.srcElement; 
    if (target.tagName !== "TEXTAREA" || target.tagName === "INPUT") { 
      if(e.which == 84) { 
       $("html, body").animate({ scrollTop: 0 }, 500); 
       return false; 
      } 
    } 
}); 

,但是,因为如果我插入(target.tagName !== "TEXTAREA" || target.tagName === "INPUT")脚本不起作用?我该如何解决?

+0

你是什么意思“的剧本不行”吗?请详细说明。 – user3163495

+0

我可以在textarea中正确写入字母A,因为在输入时会激活快捷方式 – Xanger

回答

1

你有一个错误的情况下,正确的是:

if (target.tagName != "TEXTAREA" && target.tagName != "INPUT") {...} 

而且 'A' 的Unicode值是65,84是 'T'。

+0

谢谢!它完美地工作 – Xanger

0

您可以简化您的代码

//press A for back to top 
$(document).keydown(function(e){ 
console.log(e); 
    if(e.which == 65 && e.target.tagName !== 'INPUT'&& e.target.tagName !== 'TEXTAREA') { 
     $("html, body").stop().animate({ scrollTop: 0 }, 500); 
     return false; 
    } 
}); 

通过在您的评论的方式你写“按A顶部”,但你的代码中使用“T”则charCode(84);正确charCode为65

Here a working jsfiddle