gpt4 book ai didi

javascript - jQuery 键盘快捷键插件取消绑定(bind)在我的演示中不起作用,但不显示任何错误

转载 作者:行者123 更新时间:2023-11-30 00:28:45 28 4
gpt4 key购买 nike

我正在尝试使用这个jQuery 键盘快捷键插件 https://github.com/jeresig/jquery.hotkeys在我的 JavaScript 应用中。

我遇到一个问题,使事件监听器开始监听我的按键的绑定(bind)方法有效,但 unBind 方法似乎不起作用。

这是一个例子:http://jsfiddle.net/80k2uf3w/13/

// Enable our keyboard shortcut for the "number 1 key"
function bindOneKey(){
alert("keyboard Event listener is now listening for key number 1 to be pressed!");
jQuery(document).bind('keydown', '1',function (evt){
alert("keyboard key number 1 was pressed");
return false;
});
}

// Disable our keyboard shortcut for the "number 1 key"
function unBindOneKey(){
jQuery(document).unbind('keydown', '1');
alert("keyboard Event listener for key number 1 has been killed!");
}

// Demo buttons to enable/disable our Keyboard shortcut Event listeners
$(document).ready(function(){
$('#bindOne').bind('click', bindOneKey);
$('#unBindOne').bind('click', unBindOneKey);
}

用于演示的 HTML 按钮

<input type="button" id="bindOne" value="Bind 1 keyboard key" />
<input type="button" id="unBindOne" value="unBind 1 keyboard key" />

在该演示页面上按下 bind 1 按钮后,您可以按下键盘上的数字 1 键并从回调函数中获得警报。

之后,如果您按下unbind 1 按钮,然后再次按下1 键,它仍然有效,而不是解除绑定(bind)!

有人知道问题出在哪里吗?

这只是展示功能和问题的最基本的演示。我的真实应用程序基本上会在打开模态窗口时启用键盘快捷键,然后在关闭模态窗口时禁用/取消绑定(bind)它们。这就是为什么我需要让这个工作。

我的另一个选择是找到一个新的键盘快捷键库,看起来大约有 50 个,但我喜欢这个,因为它看起来非常轻巧,而且是由一位非常知名的 JavaScript 开发人员构建的。所以我在这里发帖是为了看看我们是否可以先让这个 100% 工作。

需要注意的是,在库的 GItHub 页面上,测试文件似乎使用的是 jQuery v1.4.x 旧版本,也许这可能是问题的一部分,但我我不确定大多数库是否正常工作,而且我也没有收到控制台错误!

感谢您的帮助

最佳答案

我在这个问题中发现了一个类似的问题,其他人试图做同样的事情启用和禁用键盘快捷键作为模式打开和关闭使用这个库 jQuery Hotkeys - unbinding?

似乎没有任何完美的解决方案,所以我可能会查看其他库,或者可能只是在没有库的情况下使用 jQuery 手动编写我需要的快捷键。它可能会给我更多的控制权。

关于javascript - jQuery 键盘快捷键插件取消绑定(bind)在我的演示中不起作用,但不显示任何错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30416573/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com