使用Mousetrap处理键盘快捷键(keypress.js和jQuery.hotkeys.js的使用)
对于键盘快捷键和键记录来说,两个较为流行的库为Mousetrap和keypress,其中keypress的维护更好一点,下面是keypress的使用案例,首先你需要,下载keypress.js
下载网址:http://dmauro.github.io/Keypress/“><!DOCTYPE html> <html> <head> <meta name="description" content="math.js | basic usage"> <title>keypress.js的使用</title> <script type="text/javascript" src="keypress.js"></script> </head> <body> <div id="msg">Press Shift-r or Press a b c</div> <script>//keypress.js的使用 var message = document.getElementById("msg"); var listener = new window.keypress.Listener(); listener.simple_combo("shift r",function(){ message.innerHTML = "Press shift+r"; }); listener.sequence_combo("a b c",function(){ message.innerHTML="you press A or B or C"; }); //记录按键按下的次数 listener.counting_combo("shift s", function(e, count) { console.log("You've pressed this " + count + " times."); }); //扩展更多的内容 listener.register_combo({ "keys":"alt m", "on_keydown":function(){ msg.innerHTML = "alt m down"; }, "on_keyup":function(){ msg.innerHTML = "alt m up"; }, "is_unordered":true }); //一次添加多个按键 var scope = this;//this 为 window对象 listener.register_many([ { "keys":"alt m", "on_keydown":function(){ msg.innerHTML = "alt m down"; }, "on_keyup":function(){ msg.innerHTML = "alt m up"; }, "is_unordered":true, "this":scope }, { "keys":"alt v", "on_keydown":function(){ msg.innerHTML = "alt v down"; }, "on_keyup":function(){ msg.innerHTML = "alt v up"; }, "is_unordered":true, "this":scope } ]);</script> </body> </html>
使用jQuery的扩展库jquery.hotkeys.js
下载地址:
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="math.js | basic usage">
<title>keypress.js的使用</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript" src="jquery.hotkeys-0.7.9.min.js"></script>
</head>
<body>
<div id="message"></div>
<script>
$(document).ready(function($) {
$(document).on('keydown', null,'shift+r', function(event) {
event.preventDefault();
$("#message").html("you press shift+r");
/* Act on the event */
});
});
</script>
</body>
</html>