javascript - 语法错误: missing :

标签 javascript jquery

我有一个创建上下文菜单的 JavaScript 文件。

function textCM()
{
$('.text').contextMenu('context-menu-1', {
 'Context Menu Item 1 node level 1': {
            click: function(element){ printId(element.attr('id')); },
        },
 'Context Menu Item 2 node level 1': {
            click: function(element){ printId(element.attr('id')); },
        },
});
}

我试图让函数动态创建上下文菜单(发送参数列表并将它们添加到我的函数中)。 到目前为止我所做的看起来像这样:

function textCM()
{
$('.' + arguments[0]).contextMenu('context-menu-1', {
    arguments[1]: {
        click: function(element) {  
            alert('Menu item 1 clicked' + element.attr('id'));
            },
        },
});
}

第一个函数按预期工作,但在第二个函数中出现错误

SyntaxError: missing : after property id

这是由线路引起的

arguments[1]: {

我知道还有其他问题也有同样的错误,但是,据我所知,这不是同一个问题。我似乎无法理解我做错了什么。

最佳答案

您不能在 object literals 中使用变量作为名称.

您需要创建一个对象,并使用bracket notation :

var menu = {};
menu[arguments[1]] = {
        click: function(element) {  
            alert('Menu item 1 clicked' + element.attr('id'));
            },
        };

关于javascript - 语法错误: missing :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20682864/

相关文章:

javascript - Angular 无法找到模块,直到重建

javascript - 使用边界矩形获取 d3 元素的高度/宽度时如何考虑比例

javascript - jquery 获取最近的 parent

javascript - 这个单行 JS 对 960.gs 索引页做了什么?

javascript - 无法在 Raphael 中缩放多条路径?

javascript - 将表格字段更改为仅显示

javascript - $(window).scrollTop 与 $(window).scroll() 事件相关联,行为异常

jquery - 使用 jQuery 选择前 2 个单词并用 <span> 标签包裹它们

javascript - JS : How to check collision of a lot of elements?

javascript - Chrome 扩展 - 用于在任何页面上运行 js 的简单内容脚本