我目前正在处理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()简单地复制单击就足够了
感谢您收到的任何评论。
发布于 2011-12-04 23:20:08
您不应该触发click()处理程序,因为其他组件/插件也可能已经订阅了click()事件。
在keydown()处理程序中,您应该再次调用this_click_func.call()。
此外,您得到的是Object Literal Notation, JSON。
https://stackoverflow.com/questions/8376243
复制相似问题