基本Javascript / jQuery问题:如何在键/值对中使用非文字键?我认为以下语法(下面)会解析,但事实并非如此。我正在尝试创建一个动态的对话框。我希望按钮文本是可变的。我怎么能用Javascript / jQuery做到这一点?或者我必须在我的.js文件上调用PHP? (所以不要这样做......)
function see_menu_custom(t1, m1, t2, m2, t3, m3, t4, m4, t5, m5)
{
$(document).simpledialog2(
{
mode: 'button',
headerText: 'Send Message',
headerClose: true,
showModal: true,
animate: false,
buttons :
{
t1: /******** How can I make this a nonliteral? *********/
{
click: function () {
sendMessage(username, token, t1, m1);
},
iconpos : "right",
icon : "arrow-r",
theme : "e"
},
...
答案 0 :(得分:1)
buttons[var] = {};
答案 1 :(得分:1)
括号表示法是正确的答案,但是你似乎也在问如何传递它,就像这样构造
function see_menu_custom(t1, m1, t2, m2, t3, m3, t4, m4, t5, m5)
{
var myButtons = {};
myButtons[t1] = {
click: function () {
sendMessage(username, token, t1, m1);
},
iconpos : "right",
icon : "arrow-r",
theme : "e"
};
// rest of buttons
...
// then pass into next step
$(document).simpledialog2(
{
mode: 'button',
headerText: 'Send Message',
headerClose: true,
showModal: true,
animate: false,
buttons : myButtons, // here
...
答案 2 :(得分:0)
您只能对对象文字使用字符串,要使用必须使用方括号和赋值的表达式:
buttons[expression] = value;
答案 3 :(得分:0)
正如其他人所指出的那样,你不能用文字符号表示法。
但是,与将按钮放在数组中相比,我认为使用标题作为键是不太自然的表示:
function see_menu_custom(t1, m1, t2, m2, t3, m3, t4, m4, t5, m5)
{
$(document).simpledialog2(
{
mode: 'button',
...
buttons :
[
{
label: 'My arbitrary string value',
click: function () {
sendMessage(username, token, t1, m1);
},
...
theme : "e"
},
]