javascript - function.call() 或 click()

标签 javascript jquery performance events

我目前正在使用 jQuery 开发一个菜单,该菜单具有菜单项的键盘快捷键以及访问键。

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

var my_menu = [
    { 
        label     : 'File',
        accessKey : 'F',
        func      : function() { alert('File shown'); } 
    }
];

我正在绑定(bind)func使用 jQuery 的 <li> 向菜单项(click() 元素)添加函数函数,类似于:

this_li.click(function() { this_click_func.call() });

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

这很好用,但我想了解这种方法的意见。当按键组合也匹配时运行该函数是否是更好的做法,或者使用 click() 简单地复制单击就足够了?

感谢您提出的任何意见。

最佳答案

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

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

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

关于javascript - function.call() 或 click(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8376243/

相关文章:

java - 为什么两个独立的循环比一个快?

javascript - 动态加载/卸载 javascript 和 css 样式表有优势吗?

javascript - jQuery UI .dialog() 方法在 IE6 中默默失败

javascript - Jquery 步骤向导选择列表验证

javascript - 如何在我的 javascript 模块中包含 jquery 而不与全局命名空间发生冲突?

javascript - Intranet 站点的积极缓存与 Javascript 文件组合

java - Java中为一个Integer对象分配多少内存?如何找出任何自定义对象的这个值?

javascript - 使用nodejs/async批量和延迟API调用

javascript - 上传目录不发送带有文件的文件夹名称

javascript - 我的 JSON 对象的 JSON 解析错误