2016-07-22 81 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