Javascript ASP.NET MVC项目中的键盘快捷键
如何处理多个键 就像我有多个保存选项,我想一次处理一个按钮。我不知道如何处理整个页面上的多个保存按钮。我正在ASP.NETMVC项目中使用jQuery。我该怎么做 我正在使用以下代码:Javascript ASP.NET MVC项目中的键盘快捷键,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,如何处理多个键 就像我有多个保存选项,我想一次处理一个按钮。我不知道如何处理整个页面上的多个保存按钮。我正在ASP.NETMVC项目中使用jQuery。我该怎么做 我正在使用以下代码: $(document).bind('keydown', 'ALT+S', function() { // Alt + S for saving shortcut if (e.keyId == '#btnSaveCompany') { // Here I want to handle
$(document).bind('keydown', 'ALT+S', function() {
// Alt + S for saving shortcut
if (e.keyId == '#btnSaveCompany') {
// Here I want to handle a function for the key btnSaveCompany
funSaveCreation();
}
});
在这里,我想处理保存按钮的键盘快捷键保存。我想通过这个来处理多个按钮。例如,在Firefox中使用
Alt+S
将打开历史记录菜单。因此,您必须找出要使用的不会触发内置浏览器热键的向下键或热键组合。对于下面的示例,我使用Shift+S
启动一个函数来模拟保存
实例:
这不是
keydown
事件处理程序的工作方式。阅读文档了解更多信息:我明白了这一点,但问题是,在我的页面中,我有多个保存多个信息的保存按钮,比如一个用于创建和一个弹出保存,另一个用于保存其他信息,我正在使用不同的功能保存不同的内容、取消和其他用途,那么如何处理这种情况,您需要将keydown绑定到html元素/节点,然后检查键是什么。“ALT+S”不是html元素(事实上,您根本不需要此参数-如果您将“#btnSaveCompany”在这里,只有当该按钮具有焦点时,它才会起作用-这就破坏了拥有键盘快捷键的意义。如果你有多个按钮,那么你希望alt+s为哪一个按钮工作?你知道键盘快捷键是如何工作的吗?我是如何发现的,就像我在页面上一样,有不同的按钮用于保存。在弹出窗口中,不同的按钮用于保存,所以如何通过将收集的快捷方式处理此问题。如何找到Rory先生?
//variable to hold the value of keydown press
//combinations
var saveHotKeys = 0;
//keysDown flag intialized to false
var keysDown = false;
$(document).on("keydown", function(e) {
//set keysDown flag to true
keysDown = true;
//if the keysDown flag is true
//and the key pressed is not equal to value stored
if(keysDown === true && e.which !== saveHotKeys){
//add key code value saveHotKeys
saveHotKeys += e.which;
}
//debug only(used to determine total value of keydown codes)
console.log(saveHotKeys);
// SHIFT + S for saving shortcut
// Using CTRL + S will invoke
// browser hot key
if ( saveHotKeys === 99) {
//call the save function
funSaveCreation();
}
});
//key up event to clear the flag and hot keys values
$(document).on("keyup",function(){
//set keysDown flag to false
keysDown = false;
//clear the saveHotKeys value
saveHotKeys = 0;
});
function funSaveCreation() {
alert("saved");
}