【发布时间】:2011-12-10 08:16:05
【问题描述】:
我正在使用 jQuery 热键插件将一些按键绑定到事件。我试图将其更改为在数组上绑定循环,但它不起作用。
var letters = ["a","b","c"];
for (var x in letters)
{
var letter = letters[x];
$("el").bind('keydown', letter, function() { /*...*/ })
.bind('keyup', letter, function() { /*...*/ });
}
此代码将所有事件绑定到数组中的最后一个字母(“c”),而没有绑定到其他字母。有没有更好的方法来做到这一点?非常感谢。
【问题讨论】:
-
为什么有人要绑定所有这些事件监听器?那是一些可怕的表现。哎呀。
-
要么使用 switch 语句,要么使用包含所有功能的对象。为 keyup 添加一个事件处理程序,为 keydown 添加一个事件处理程序。在对象中查找函数或让其与 switch case 一起找到。
标签: javascript events jquery hotkeys