jQuery键盘快捷键插件unbind在我的演示中不工作,但没有显示任何错误
jQuery Keyboard shortcut plugin unbind does not work in my demo but does not show any errors
我正在尝试使用这个jQuery键盘快捷键插件 https://github.com/jeresig/jquery.hotkeys在我的JavaScript应用程序。
我遇到一个问题,绑定方法使事件侦听器开始侦听我的按键工作,但是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 button for Demo
<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 key
再次,它仍然工作,而不是解除绑定它!
有人知道问题是什么吗?
这只是展示功能和问题的最基本的演示。我真正的应用程序基本上会启用快捷键时,一个模式是打开,然后禁用/取消绑定时,模式是关闭。这就是为什么我需要让它工作起来。
我的另一个选择是找到一个新的键盘快捷键库,似乎有大约50个,但我喜欢这个,因为它看起来非常轻量级,也是由一个非常知名的JavaScript开发人员构建的。所以我在这里发帖,看看我们是否能先让这个工作100%。
有一件事要注意的是,在GItHub页面上的库,似乎测试文件使用的是jQuery v1.4.x
旧版本,也许这可能是问题的一部分,但我不确定,因为大多数库工作,我也没有控制台错误!
感谢您的帮助
我发现了一个类似的问题,其他人试图做同样的事情启用和禁用键盘快捷键作为一个模式打开和关闭使用这个库在这个问题jQuery热键-解除绑定?
似乎没有任何完美的解决方案,所以我可能会看看其他库,或者可能只是手动编写我需要的jQuery快捷键,而没有库。
- dhtmlx多个调度器不工作错误”;调度程序未定义”;
- Javascript 确认框工作错误
- 变量中的类工作错误
- 为什么这个jQuery验证工作错误
- Cordova罗盘API(navigator.compass.watchHeading)不工作(错误代码3)
- Javascript不能在Chrome或IE9中工作-错误”;复选框未定义“;显示在FF JS控制台中
- JQuery UI对话框不能正常工作;错误信息“TypeError: undefined不是一个函数”
- Jquery/JS css动画在悬停时工作错误
- AngularJs Ng-Keypress事件工作错误
- Jquery 选择器不工作:错误:语法错误,无法识别的表达式:a[@href]
- 日期选择器范围工作错误
- 为什么我的Jquery Ajax请求不工作错误:未定义的索引:ProID
- 反应不工作.错误提示(index):13 Uncaught SyntaxError: Unexpected token
- 身份工具箱不工作-错误代码:IDP的错误响应
- jquery日期picker beforeShowDay工作错误的月份
- Javascript验证在c#中不工作(错误消息)
- 为什么?每个函数都工作错误
- 路由到api工作错误
- 子元素位置相对工作错误
- 从timeline2.6.1的例子不工作-错误链接是未定义的时间线代码0