我有一个创建上下文菜单的 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/