jQuery对话框中的动态按钮名称

4

我有一个网页,使用localStorage存储不同的语言,在jQuery对话框中,我希望按钮的名称根据语言动态更改,例如:

var btn_hello_text = getLanguageBtnHelloText();

$('#dialog').dialog({
    autoOpen: false,
    buttons: {
        btn_hello_text: function() { 
            doThings();
        }
    }
});

这里的问题是对话框显示了一个带有文本"btn_hello_text"的按钮,而不是变量本身包含的值。我无法找到一种动态更改按钮文本值的方法,有什么提示吗?谢谢。

2个回答

5
你可以使用方括号表示法(而不是点表示法),如下所示:
var my_buttons = {};
my_buttons[getLanguageBtnHelloText()] = doThings;

$('#dialog').dialog({
    autoOpen: false,
    buttons: my_buttons 
});

1

你不能使用内联对象声明来做到那一点。但是可以使用方括号语法来实现:

var btn_hello_text = getLanguageBtnHelloText();

var buttonDefs = {};
buttonDefs[btn_hello_text] = function() { doThings(); };

$('#dialog').dialog({
    autoOpen: false,
    buttons: buttonDefs
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接