首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >function.call()或单击()

function.call()或单击()
EN

Stack Overflow用户
提问于 2011-12-04 23:16:13
回答 1查看 108关注 0票数 1

我目前正在处理jQuery中的一个菜单,它有菜单项的键盘快捷键以及访问键。

我使用对象文字传递数据来构建菜单,该对象文字存储了要绑定到菜单项的函数,如下所示:

代码语言:javascript
复制
var my_menu = [
    { 
        label     : 'File',
        accessKey : 'F',
        func      : function() { alert('File shown'); } 
    }
];

我使用jQuery的click()函数将func函数绑定到菜单项(一个<li>元素),如下所示:

代码语言:javascript
复制
this_li.click(function() { this_click_func.call() });

然后,我通过在document上侦听keydown()来添加键盘支持。如果键的组合与accessKey匹配,我只需使用jQuery中的click()方法来触发函数,即使在实际情况中,他们还没有单击该项。

这个方法工作得很好,但是我想知道关于这个方法的一些意见。当键的组合也匹配时运行函数是更好的做法,还是使用click()简单地复制单击就足够了

感谢您收到的任何评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-04 23:20:08

您不应该触发click()处理程序,因为其他组件/插件也可能已经订阅了click()事件。

keydown()处理程序中,您应该再次调用this_click_func.call()

此外,您得到的是Object Literal Notation, JSON

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8376243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档