Pek*_*ica 5 javascript keypress prototypejs dom-events
我有一个自定义CMS,并希望添加一个"快捷键菜单",按住Ctrl键两次,例如300毫秒.我使用原型,所以我的出发点显然是:
Event.observe(document, 'keypress', function(event)
{ if(event.keyCode == Event.KEY_XYZ) { show_shortcuts});
Run Code Online (Sandbox Code Playgroud)
我现在的方法是用当前时间(以毫秒为单位)填充全局变量,并检查每个按键是否按键发生的时间小于300毫秒.
但也许有更优雅的解决方案?
这应该工作.如果没有同时按下Alt或Shift等其他键,可能会添加一些进一步的检查.希望它是自我解释,如果不是只是问我,我提供澄清.
var dblCtrlKey = 0;
Event.observe(document, 'keydown', function(event) {
if (dblCtrlKey != 0 && event.keyCode == 17) {
alert("Ok double ctrl");
} else {
dblCtrlKey = setTimeout('dblCtrlKey = 0;', 300);
}
});
Run Code Online (Sandbox Code Playgroud)
function doubleControlEvent() {
if (event.key === 'Control') {
timesCtrlClicked++
if (timesCtrlClicked >= 2) {
console.log('Double control')
// Double Crtl is clicked add your code here
}
setTimeout(() => (timesCtrlClicked = 0), 200)
}
}
let timesCtrlClicked = 0;
document.addEventListener('keyup', doubleControlEvent, true)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2591 次 |
| 最近记录: |