2013-03-12 58 views
0

我不知道如何用純JavaScript做'keydown'。keydown with JavaScript

下面是我用jQuery做的,但是有沒有辦法用純JS做同樣的事情呢? 我只想檢查是否有方法並學習如何去做,以及看到代​​碼的差異和長度。謝謝。

$('body').on('keydown', function(e) { 
    if (e.keyCode === 27) return false; 
}); 

編輯:它用來禁用「Esc」按鈕!

+3

您是否在您最喜愛的搜索引擎中搜索「keydown JavaScript」? NE? – epascarello 2013-03-12 13:10:39

+0

http://stackoverflow.com/questions/3036243/cancel-the-keydown-in-html – 2013-03-12 13:11:07

+0

我確實搜索@epascarello。然而沒有任何作品如果我添加警報或控制檯日誌它的工作原理,但如果我想重寫一些在Esc上「關閉」的東西,它就不會工作。適用於jQuery tho:/ – dvLden 2013-03-12 13:17:51

回答

1

在這裏你去

document.body.onkeydown = function(e) { 
    if (e.keyCode === 27) return false; 
} 

正如你可以看到jQuery是短,但這將執行更少的代碼

3

我不喜歡設定聽衆的屬性,所以我即使添加這樣的偵聽器:

var ele = document.getElementById('test'); 
ele.addEventListener('keydown', function() { 
    //code 
}, false); 
+0

IE8和不支持addEventListener – epascarello 2013-03-12 13:21:10

+0

爲什麼我不能得到任何工作的答案!他們都可以工作,但是隨機的東西,我把如alert();但不是爲了壓倒fancybox esc關閉! ( – dvLden 2013-03-12 13:30:20

0

試試這個,

HTML

<body onkeydown="YourFunction(event)">...</body> 

JS

function YourFunction(e) 
{ 
    var unicode=e.keyCode || e.charCode|| e.which; 
    if(unicode == 27) 
     return false; 
    else 
    { 
     //Your code... 
    } 
} 
+0

IE不通過事件對象 – epascarello 2013-03-12 13:50:54

+0

嗯..我使用的是IE9.0,它工作的很好,而且我改變了IE7和IE8 **的瀏覽器模式。好吧, – 2013-03-12 14:39:44

0

在純JavaScript是做這樣

document.body.onkeydown=function(e){ 
    key=e.keyCode || e.charCode|| e.which; //cross browser complications 
    if(key===27){ 
    return false; 
    } 
} 

希望它的幫助下,它是同一個腳本爲您提供

JQuery的一個
+0

更新了,現在,我會有一個更好的瀏覽器支持,但不知道有關IE – Ronnie 2013-03-12 13:26:30