我正在使用js-hotkeys。我有一个问题,当我的键组合是超过1个键,例如。"Shift+Tab",我的函数被抛出两次。
$("textarea").bind("keydown", "shift+tab", function() { ... });看看这里发生了什么,-> http://jsbin.com/osuza5/2/edit。似乎只有一个键,它也会在那里触发两次。
发布于 2010-11-30 17:58:10
从it's a known issue的jQuery 1.4.2开始,就发生了这种情况。幸运的是,John Resig对此进行了改进,并在一段时间前创建了一个更干净的版本,也就是...well - it - you can check it out here。
将jsbin更新为指向这个插件版本:https://github.com/jeresig/jquery.hotkeys/raw/master/jquery.hotkeys.js (这是唯一的更改),它可以工作。You can test it out here。
发布于 2010-11-30 18:25:28
试用代码:
$("textarea").bind("keydown","shift+tab",function(e) { e.preventDefault;bla..bla...});
链接:http://jsbin.com/osuza5/4/edit
发布于 2012-09-16 07:23:06
注意绑定过程中提到的两次组合。一个和"keydown.shift+tab“一起。为了防止它在某些浏览器中多次触发,请在函数末尾取消绑定热键。这对我很有效。我使用的是来自http://code.google.com/p/js-hotkeys/的原始版本
请注意,使用此选项可能会阻止您覆盖任何浏览器默认设置。因此,即使事情会像预期的那样进行,但一旦解除绑定发生,浏览器可能会因此切换选项卡(shift+tab)。
$("textarea").bind("keydown.shift+tab", "shift+tab", function() { ...
//Your Code Here
//this should be in the end
$("textarea").unbind("keydown.shift+tab", "shift+tab");
});https://stackoverflow.com/questions/4312369
复制相似问题