我有类似的东西:
var myMenu= [
{
'My English Title':function(menuItem,menu)
{ ... }
}];
现在,我希望用其他JSON结构值LOC.MENU_TITLE
替换“我的英文标题”。
我试过了:
var myMenu= [
{
LOC.MENU_TITLE:function(menuItem,menu)
{ ... }
}];
但它不起作用。任何人都可以给我一个如何在JSON变量中获取JSON值的提示吗?
编辑: 这是使用Context Menu of Jquery但是我遇到了下面所有解决方案的问题,而且是时候传递分隔符的字符串了。它不显示分隔符,因为它将字符串传递给对象而不仅仅是字符串。
示例:
var menu1 = [
{'Option 1':function(menuItem,menu) { alert("You clicked Option 1!"); } },
$.contextMenu.separator,
{'Option 2':function(menuItem,menu) { alert("You clicked Option 2!"); } }
];
答案 0 :(得分:10)
var tempElement = {};
tempElement[ LOC.MENU_TITLE ] = function(menuItem, menu) {};
myMenu = [ tempElement ];
解决您的编辑问题。请尝试以下
var myMenu = [ {}, $.contextMenu.separator, {} ];
myMenu[0][ LOC.MENU_TITLE ] = function(menuItem, menu) {};
myMenu[2][ LOC.MENU_TITLE2 ] = function(menuItem, menu) {};
答案 1 :(得分:7)
JavaScript object literals期望密钥可以是Identifier
,String
字面值或Number
字面值,解决方法可以是逐步构建对象,使用括号表示法:
var myMenu= [{}];
myMenu[0][LOC.MENU_TITLE] = function(menuItem,menu){ /*...*/ };
请注意,上述内容不是JSON。
JSON是一种与语言无关的数据交换格式,它的语法与JavaScript Object文字不同,基本上只允许字符串键,值必须是对象,数组,数字,字符串或文字名称:{{1 },false
null
。