document.onkeydown = function(e) { //編寫事件觸發時候的回調函數 }
*Evnet事件的具體內容請見W3C文檔, 樣子是這樣的:
具體的網址:
http://www.w3school.com.cn/jsref/dom_obj_event.asp
*實例應用
需求:當按下Ctrl+Enter鍵時觸發saveComment方法
代碼為:
document.onkeydown = function(e) { //console.log(e.ctrlKey); if (13 == e.keyCode && e.ctrlKey) { //console.log(c1); saveComment(); } }
分析:當ctrl按下時候, 方法被觸發, 不松開ctrl鍵, 按下enter鍵, 方法再次被觸發.
猜想:1)e的內部實現必然有一個數組用來存儲按鍵的id, 也就是說哪怕有10個按鈕同時按下, 也能同時識別.
同時, 將每個按鈕的對象的屬性中有一個是否按下的屬性, 如果按下就是true.
2)同時, 按下ctrl后再按下enter不是簡單的再次調用onkeydown函數, 而是保存了上一次onkeydown還沒有完成的事件(ctrl鍵按下).
具體的實際應用請看我的這篇文章:
歡迎評論, 指導.