JS監聽鍵盤兩個組合鍵的觸發


*鍵盤事件的回調是document.onkeydown函數, 該函數會傳入一個Event類型的參數
document.onkeydown = function(e) {
    //編寫事件觸發時候的回調函數
}

*Evnet事件的具體內容請見W3C文檔, 樣子是這樣的:

 event_page

具體的網址:

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鍵按下).

 

具體的實際應用請看我的這篇文章:

 

歡迎評論, 指導.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM