如何创建一个侦听按键组合的事件侦听器(ctrl 和左/右箭头)
How can you create a event listener that listens to a combo of keypresses (ctrl and left/right arrow)?
我有以下代码,它使用左右箭头键在元素之间导航。
$(document).keydown(function (event) {
if (event.keyCode === 37) {
console.log("left")
currentPosition > 0 ? currentPosition-- : maxFocusablePosition;
}
if (event.keyCode === 39) {
console.log("right")
currentPosition < maxFocusablePosition ? currentPosition++ : 0;
}
我尝试实现以下内容,但它不起作用:
if ( event.ctrlKey && ( event.which === 37 ) ) {
console.log( "Combo Move" );
}
真的吗?我很惊讶,因为ctrlKey
和which
为我工作!
键盘事件 API 是一种耻辱。W3C在键盘事件的标准化方面拖了很长时间。这就是为什么您可能会看到很多相互矛盾的信息。
$(function() {
var input = $('input');
input.on('keydown', function(event) {
if (event.which === 37 && event.ctrlKey) {
input.val('ctrl-left');
} else if (event.which === 39 && event.ctrlKey) {
input.val('ctrl-right');
} else {
input.val('');
}
});
input.focus();
});
input { width: 100%; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input placeholder="Press Ctrl-left or Ctrl-right in here">
按如下方式使用keyCode并在函数中使用。
$(document).keydown(function (event) {
var keyCode = event.keyCode || event.which;
if (keyCode === 37) {
console.log("left")
currentPosition > 0 ? currentPosition-- : maxFocusablePosition;
}
if (keyCode === 39) {
console.log("right")
currentPosition < maxFocusablePosition ? currentPosition++ : 0;
}
if ( event.ctrlKey && ( keyCode === 37 ) ) {
console.log( "Combo Move" );
}
相关文章:
- Highslide(iframe的侦听器)
- 如何在for循环中添加事件侦听器
- 选项卡侦听器未被来自后台脚本的消息激活
- 未命中服务器发送的事件侦听器
- 如何覆盖原型中的事件侦听器
- 加载侦听器上的函数触发得太早
- 无法将事件侦听器附加到画布
- 如何在d3.js中自定义事件侦听器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- 事件侦听器未在chrome扩展中的options.js中启动
- IE8更改文本区域上的事件侦听器不工作
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- jQuery将侦听器的大小调整为只触发宽度的变化
- javascript删除事件侦听器
- 我应该/如何清除mousemove JQuery事件侦听器
- 在JQuery中使用谷歌地图Api事件/侦听器
- 设置 ctrl + 键按下事件侦听器时出现问题(未检测到)
- 如何创建一个侦听按键组合的事件侦听器(ctrl 和左/右箭头)
- 在特定的DOM元素上启用键盘侦听器(ctrl+Z)
- Ctrl+Shift+v Chrome事件侦听器(获取复制文本)