我目前正在使用jQuery中的菜单,该菜单包含菜单项的键盘快捷键以及访问键。
我使用对象文字传递数据来构建菜单,该对象文字存储了要绑定到菜单项的函数,如下所示:
var my_menu = [
{
label : 'File',
accessKey : 'F',
func : function() { alert('File shown'); }
}
];
我使用jQuery的func
函数将<li>
函数绑定到菜单项(click()
元素),如:
this_li.click(function() { this_click_func.call() });
然后我通过在keydown()
上收听document
来添加键盘支持。如果键的组合与accessKey
匹配,我只需使用jQuery中的click()
方法来触发该函数,即使实际上它们没有单击该项。
这很好,但我希望对这种方法有所了解。在组合键匹配时运行该功能是否更好,或者仅使用click()
复制点击是否足够?
感激地收到任何评论。
答案 0 :(得分:0)
您不应该触发click()
处理程序,因为其他组件/插件也可能已订阅click()
事件。
在keydown()
处理程序中,您应再次致电this_click_func.call()
。
此外,您获得的是Object Literal Notation, not JSON。