【问题标题】:jKey (JavaScript key shortcut plugin) IssueKey(JavaScript 快捷键插件)问题
【发布时间】:2011-01-11 03:45:30
【问题描述】:

我和一个朋友正在为 jQuery 编写一个插件,使开发人员可以轻松添加快捷键,我们非常接近但没有雪茄。我们遇到了按键组合问题。当您在一个页面上多次调用同一个选择器时,我们似乎遇到了问题。

尝试按 alt+a... 你会看到它工作一次,然后就全部搞砸了。谁知道怎么修它?更正后它会在 github 上,我很乐意在标题中添加“谢谢”链接给任何可以使用版权信息修复此问题的人:)

它有很好的文档记录,我这里有所有的代码和东西。所以……有人吗?

http://jsbin.com/azaha4

-- 更新--

已修复,现已开启:

Github: http://github.com/OscarGodson/jKey

完整文档: http://oscargodson.com/labs/jkey/

【问题讨论】:

  • 哎呀,对不起,我太累了,我修好了。它应该是快捷键。我相信该链接是对脚本的更好描述。
  • 你似乎使用了很多“for ... in”循环——这让我害怕,因为它们本质上是脆弱的……但是快速扫描代码表明你并不完全疯了,所以我需要更仔细地看看它
  • 有什么建议吗?最初当我有想法时,我发布了关于我应该如何最终构建这个的提示,只有 1 人回复,那个人说像这样做关键组合是“不可能的”,所以我们已经破解了一段时间:\在这个过程中可能把它弄糊涂了
  • 我建议将[] 用于新数组,而不是Array() - 这只是一个随机注释
  • 谢谢。改变了它,但似乎没有任何改变。

标签: javascript jquery jquery-plugins keyboard-shortcuts jkey


【解决方案1】:

从头开始,问题是由未调用 keyup() 事件处理程序引起的,但这不是由您的 e.preventDefault 调用引起的,因为我删除了它们,它仍然存在相同的问题。

想通了——你不能在回调中提醒。这打破了事件链。如果您删除警报,而是通过 HTML 向用户发送通知,那么一切都很好。

【讨论】:

  • 我认为你在做某事。这肯定与未清除的活动键有关。
  • 是的,keyup 事件处理程序没有可靠地触发。我正在尝试确定是什么阻止了它触发 - 阅读了一堆说它是一个不可靠的事件处理程序的文章......更多。
  • 是的,在 keyup 的 api 页面上看起来人们遇到了完全相同的问题,主要与 ctrl 键等有关。
  • 现在看起来完全好了!谢谢,我将警报更改为console.logs,它正在工作。你们摇滚!
  • 如果你们中的任何人有兴趣在oscargodson.com/labs/jkey 上fork 它在github 上github.com/OscarGodson/jKey - 非常感谢您的帮助。如果您想在谢谢中提及您,请将您想要提及的姓名和 URL 发送给我:D 谢谢大家!
猜你喜欢
  • 2015-04-13
  • 2021-05-26
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2013-04-06
  • 2016-02-29
  • 2014-05-29
  • 1970-01-01
相关资源
最近更新 更多