使用mousetrap库单击带键盘快捷键的按钮? [英] Using mousetrap library to click a button with a keyboard shortcut?

查看:108
本文介绍了使用mousetrap库单击带键盘快捷键的按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

链接到我的笔:https://codepen.io/dev999/pen/pPdOGW链接到我的应用程序。我是初学者,这是我第一次使用库和基本的DOM操作。我想为我的待办事项列表中的每个操作分配键盘快捷键。有人可以帮我解决这个问题吗?谢谢!



我尝试过:



我用过的东西:



链接到Mousetrap库:cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.1/mousetrap.js



链接到图书馆的解释:https://craig.is/killing/mice



 //尝试将键盘//快捷键ctrl + q分配给操作//addTodo()。 //使用Mousetrap库

Mousetrap.bind('ctrl + q',function(e){
addTodo;
});
function addTodo(){
todo.push(prompt(输入一个你要添加到待办事项中的项目!));
dispTodo();

}

解决方案

你错过了函数调用的括号:

 Mousetrap.bind('ctrl + q',function(e){
addTodo();
});



或者,由于您的 addTodo 函数没有任何参数,并且您没有在回调中执行任何其他代码,您可以传递 addTodo 直接作为回调函数,取消了匿名包装函数:

 Mousetrap.bind('ctrl + q',addTodo); 


Link to my pen: https://codepen.io/dev999/pen/pPdOGW Link to my to do app. I'm a beginner, this is my first time using a library and basic DOM manipulation. I'd like to assign keyboard shortcuts to each action in my to do list. Could someone please help me out with this? Thank you!

What I have tried:

Stuff I used:

Link to Mousetrap library: cdnjs.cloudflare.com/ajax/libs/mousetrap/1.6.1/mousetrap.js

Link to the explanations for the library: https://craig.is/killing/mice

// Trying to assign the keyboard //shortcut ctrl+q to the action //"addTodo()". //Using Mousetrap library

Mousetrap.bind('ctrl+q', function(e) {
 addTodo;
});
function addTodo () {
 todo.push(prompt ("Enter one item you want to add to your todo!"));
 dispTodo ();

}

解决方案

You're missing the parentheses on the function call:

Mousetrap.bind('ctrl+q', function(e) {
 addTodo();
});


Alternatively, since your addTodo function doesn't have any parameters, and you're not executing any other code in the callback, you could pass addTodo as the callback function directly, eliminating the anonymous wrapper function:

Mousetrap.bind('ctrl+q', addTodo);


这篇关于使用mousetrap库单击带键盘快捷键的按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆