我正在使用HandsOnTable jquery插件,我正在尝试处理特定的键组合( Alt + v )快捷方式。但由于某些原因它无法运行,这是我的代码和jsfiddle:
$(document).ready(function () {
var isCtrl = false;
var isShift = false;
var isAlt = false;
// action on key up
$(document).keyup(function (e) {
if (e.which == 17) {
isCtrl = false;
}
if (e.which == 16) {
isShift = false;
}
if (e.which == 18) {
isAlt = false;
}
});
// action on key down
$(document).keydown(function (e) {
if (e.which == 17) {
isCtrl = true;
}
if (e.which == 16) {
isShift = true;
}
if (e.which == 18) {
isAlt = true;
}
if (e.which == 86 && isAlt) //alt+v
{
console.log("alt+v detected");
e.preventDefault();
e.stopImmediatePropagation();
return false;
}
});
});
答案 0 :(得分:1)
我正在使用铬,看起来所有的keydown事件都不会触发。我发现有一个beforeKeyDown回调,可以用来“修改键绑定”。使用它似乎有效:
$('#example').handsontable({
data: data,
minSpareRows: 1,
colHeaders: true,
contextMenu: true,
beforeKeyDown: function (e) {
if (e.altKey === true && e.which === 86) {
console.log("alt-v");
e.stopImmediatePropagation();
e.preventDefault();
}
}
});
答案 1 :(得分:0)
由于您正在使用jQuery,因此可以在事件中使用altkey
属性。
$(document).on('keydown', function(e){
var key = e.which || e.keyCode;
if(e.altKey === true && key === 86){
console.log("Alt+v");
}
});
有关该事件和其他重要事件的详情,请参阅https://developer.mozilla.org/en-US/docs/Web/API/event.altKey。