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

时间:2010-08-07 23:36:43

标签: jquery jquery-ui

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

var btn_hello_text = getLanguageBtnHelloText();

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

这里的问题是对话框显示一个文本为"btn_hello_text"的按钮,而不是变量本身包含的值。我想办法动态地改变按钮文本的值,任何提示?谢谢。

2 个答案:

答案 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
});