我有一个使用存储在localStorage中的不同语言的网页,在jQuery对话框中,我希望按照语言动态更改按钮的名称,例如:
var btn_hello_text = getLanguageBtnHelloText();
$('#dialog').dialog({
autoOpen: false,
buttons: {
btn_hello_text: function() {
doThings();
}
}
});
这里的问题是对话框显示一个文本为"btn_hello_text"
的按钮,而不是变量本身包含的值。我想办法动态地改变按钮文本的值,任何提示?谢谢。
答案 0 :(得分:5)
您可以使用bracket notation(而不是dot notation),如下所示:
var my_buttons = {};
my_buttons[getLanguageBtnHelloText()] = doThings;
$('#dialog').dialog({
autoOpen: false,
buttons: my_buttons
});
答案 1 :(得分:1)
使用内联对象声明不能这样做。但是可以通过使用方括号语法来完成:
var btn_hello_text = getLanguageBtnHelloText();
var buttonDefs = {};
buttonDefs[btn_hello_text] = function() { doThings(); };
$('#dialog').dialog({
autoOpen: false,
buttons: buttonDefs
});