【发布时间】:2014-10-18 18:16:36
【问题描述】:
我正在从 1.4.2 升级我们应用程序的 jQuery 版本。 我有一大块 JS,我不明白为什么它会起作用,但实际上在 1.4.2 中有效,而不是在 1.4.3+ 中
$(document).bind('keydown', 'f3',
function (event) {
alert("f3");
//Do something
});
在 jQuery 1.4.2 中,此功能仅适用于 F3 并触发事件处理程序。
当我升级到 1.4.3+ 时,任何keydown 都会触发事件处理程序(我认为这是有道理的)。
keydown 事件是否知道使用事件数据并检查按键是否被按下?
任何人都可以帮助我澄清它是否有效,如果不是,为什么这段代码会在 jQuery 1.4.2 中工作?
我查看了发行说明,唯一改变的是为绑定和keydown 事件添加了方法签名。
【问题讨论】:
-
如果“work”意味着“拦截 F3 键的按下”,我认为这在任何版本的 jQuery 中都不会起作用。
-
是的,它确实有效,但我不明白为什么会这样:)
-
嗯,你用的是热键之类的第三方插件吗?
-
不,非常简单的 jQuery 和 js...
-
.bind()API 从 jQuery 1.0 版本开始就稳定了,三参数版本中的第二个参数一直是用于将数据传递给事件处理程序。现在,如果这里讨论的事件处理程序使用该数据作为要过滤的键码的指示符,那么这将起作用,但库从未隐式地这样做。
标签: javascript jquery jquery-events keydown