问题标签 [mousetrap]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
515 浏览

reactjs - 如何在使用 jest 的反应中测试使用捕鼠器创建的事件

我正在编写一个使用捕鼠器的反应应用程序。我想知道如何开玩笑地测试捕鼠器的事件。我想查看单击左箭头时是否正在调用组件函数。我无法在测试中模拟此事件。似乎反应合成事件之外的事件没有对组件进行任何更改。我认为 Mousetrap 将事件附加到窗口。我需要知道如何测试这个功能。

0 投票
1 回答
175 浏览

javascript - Mousetrap - 添加包装特定元素会产生错误 a.attachEvent is not a function

我正在使用 JS 库 - Mousetrapv1.6.1用于键盘快捷键。

我的 HTML 页面上有 2 个表单,billheaderfrm并且billfooterfrm. 我正在使用下面的代码绑定到headerfrm

我在 jquery 中添加了上面的代码$(document).ready(function()

当页面加载时,我在控制台中收到错误 -TypeError: a.attachEvent is not a function

仅供参考:根据文档,从 1.5 版开始支持绑定到选定元素。

0 投票
1 回答
73 浏览

javascript - 更新 $scope 但 $watch 未检测到的 Mousetrap 键绑定。

基本上我已经创建了一个函数来更新范围变量

当我将一个键绑定到这个函数时,

浏览器中的 console.log 显示当按键(在本例中为“j”)被按下时变量会增加,但上面的 $scope.$watch 函数从未被调用,并且 console.log 消息“从 watch 更改"没有被解雇。

但是,当我在 html 文件上附加点击处理程序时,

变量增加,console.log 显示$scope.variable增加并且 $watch 函数也被触发。

除了这个问题,{{ variable }}当我使用键绑定时不会改变,但是当我点击它时它会改变。

我的猜测是 Mousetrap 中缺少某些东西会导致函数触发但与 AngularJS $scope 不同步?

0 投票
2 回答
492 浏览

javascript - Focus on bootstrap-tokenfield input

I would like to have focus on the tokenfield input field when the modal shows up. Currently it's focused only if I click on the input field in the modal.

https://jsfiddle.net/csisanyi/h19Lzkyr/12/

I tried to add the following code

I also tried to add <input autofocus> but when the tokenfield is initialized it seems like it's overriden.

I have checked the bootstrap-tokenfield documentation but input field focus is not really mentioned there.

Any suggestions?

0 投票
1 回答
598 浏览

javascript - 吸嘴node.js;未捕获的 TypeError:回调不是函数

我最近开始使用电子创建一个应用程序来免费创作音乐。不幸的是,在尝试使用捕鼠器为其设置全局键盘快捷键时,我收到了错误Uncaught TypeError: callback is not a function。当我在电子上使用开发人员工具时,它表明问题与捕鼠器源代码有关,所以我不能 100% 确定错误在哪里,但是,我知道该错误仅在其中一个捕鼠器时出现键绑定被激活。以下是我的代码:

感谢您的任何帮助

0 投票
1 回答
45 浏览

reactjs - 更改路线时将捕鼠器快捷方式保持在自动聚焦输入之外

我有一条路线通向带有我想要关注的输入的页面。

使用 Mousetrap 快捷方式到达那里,将快捷键放入输入中。

例如,约会的快捷方式“a”会在输入字段中呈现带有“a”的页面

有什么办法可以防止这种情况吗?

我得到了这两个:

并使用 ref 并专注于 didMount

这是一个显示两个快捷方式的代码沙箱(a/r)

https://codesandbox.io/s/0oll7jmxqn

帮助!谢谢

0 投票
1 回答
668 浏览

reactjs - Mousetrap.bindGlobal 不是一个函数

我通过 npm 安装了 Mousetrap 并一直试图让 Mousetrap.bindGlobal 工作,但这是它给我的错误

这没有意义,因为当我在 jsx 文件中导入 mousetrap 时,vscode 显示该命令有效。对此的任何帮助都会很有用。

0 投票
2 回答
941 浏览

javascript - 从对象动态设置 Mousetrap.bind() 组合键

我正在从我们的后端取回包含键盘快捷键信息的数据。这是我将收到的内容的简化版本:

“代码”指定哪个键将激活键盘快捷键,消息将粘贴在输入框中。

我正在使用Mousetrap库,它允许我编写如下函数:

我的问题是:有没有办法在运行时根据带回的数据编写这些函数?因此,对于 JSON 对象中的每个项目,都需要一个函数来处理快捷方式。

我试过这个:

我不知道这是否是一种好的做法,因为我对 JS 还是很陌生,但这是我唯一能想到的。但它不起作用。

0 投票
1 回答
278 浏览

javascript - 使用 Mousetrap.js 聚焦输入字段-但输入字段也将热键粘贴为值?

0 投票
2 回答
330 浏览

javascript - 将 Mousetrap Hotkey 绑定到某些 DOM 元素 - 仅在 div 处于活动状态时触发?

我想将一些热键绑定到 div:每当用户单击 div 内的某个位置然后按下S我想要的键时console.log。但是,我不希望这个热键是全局的并且每次用户按下时都会被触发S

这是我到目前为止所得到的:

捕鼠器文档说我可以像这样绑定我的捕鼠器:

正如您在上面的示例中所看到的,这就是我所做的。它确实在这个意义上起作用:每当我Sinput表单中输入时,console.log都会触发。但是,我不想使用表单,也不希望我的用户在输入中:我只想让我的用户点击div. 我无法让它工作。我希望它看起来像这样:

但是,这不起作用。什么都没有被触发。

编辑:另外,在上面的第一个示例中我不太明白的一件事是我将 Mousetrap 绑定到form. 但是,s只有当我在input fieldof 中时才会触发热键form,但当我只点击form而不是input.