【发布时间】:2011-12-04 15:16:12
【问题描述】:
我目前正在使用 jQuery 开发一个菜单,它具有菜单项的键盘快捷键以及访问键。
我使用对象字面量传递数据来构建菜单,该字面量存储了要绑定到菜单项的函数,如下所示:
var my_menu = [
{
label : 'File',
accessKey : 'F',
func : function() { alert('File shown'); }
}
];
我正在使用 jQuery 的 click() 函数将 func 函数绑定到菜单项(<li> 元素),类似于:
this_li.click(function() { this_click_func.call() });
然后我通过在document 上监听keydown() 添加键盘支持。如果组合键与accessKey 匹配,我只需使用jQuery 中的click() 方法来触发该功能,即使实际上他们并没有点击该项目。
这很好用,但我想对这种方法发表意见。当键的组合也匹配时运行该函数会更好吗,还是使用click()简单地复制一次点击就足够了?
感谢收到任何 cmets。
【问题讨论】:
-
“我做了这个,有什么想法吗?”无法回答。
-
这不是 JSON。那是一个 JavaScript 对象字面量。无论如何,这对于s.tk/review 来说可能是一个更好的问题。
-
这是个吹毛求疵,但
my_menu不是 JSON:JSON 没有功能。这是一个javascript对象。也很挑剔,除非您需要更改函数签名,否则您可以简单地使用this_li.click(this_click_func);注册处理程序——不需要闭包。
标签: javascript jquery performance events