如何基于Javascript中的变量设置属性值

时间:2011-08-18 11:53:16

标签: javascript jquery internationalization

问题是我有这段代码(Jquery UI):

    $("#dialog-confirm").dialog({
        resizable: false,
        modal: true,
        buttons: {
            "Remove": function() {
                $(this).dialog("close");
            },
            "Cancel": function() {
                $(this).dialog("close");
            }
        }
    });

现在我必须通过给每个按钮提供单词翻译来使其国际化。我对变量STR_REMOVE和STR_CANCEL进行了翻译,但是如果我做了类似的事情

        buttons: {
            STR_REMOVE: function() {
                $(this).dialog("close");
            },
            STR_CANCEL: function() {
                $(this).dialog("close");
            }
        }

按钮(属性)的值为“STR_REMOVE”和“STR_CANCEL”,而不是其内容。所以,问题是,我该怎么办?

4 个答案:

答案 0 :(得分:3)

试试这个。

var STR_REMOVE = "my delete",  STR_CANCEL = "my cancel";

$("#dialog-confirm").dialog({
    resizable: false,
    modal: true,
    buttons: [{
        text: STR_REMOVE,
        click: function () {
            $(this).dialog("close");
        }
    }, 
    {
        text: STR_CANCEL,
        click: function () {
            $(this).dialog("close");
        }
    }]
});

查看jquery ui doc:http://jqueryui.com/demos/dialog/#option-buttons

答案 1 :(得分:1)

var buttons = {};
buttons[STR_REMOVE] = function() {
                $(this).dialog("close");
            };
buttons[STR_CANCEL] = function() {
                $(this).dialog("close");
            };
$("#dialog-confirm").dialog({
     resizable: false,
     modal: true,
     buttons: buttons
});

答案 2 :(得分:1)

你不能内联。您必须先声明对象,然后使用square bracket member operator设置属性:

var buttons = {};
buttons[STR_REMOVE] = function() {
    $(this).dialog("close");
};
buttons[STR_CANCEL] = function() {
    $(this).dialog("close");
};

$("#dialog-confirm").dialog({
    resizable: false,
    modal: true,
    buttons: buttons
});

答案 3 :(得分:0)

试试这个,未经测试:

$("#dialog-confirm").dialog({
    resizable: false,
    modal: true,
    buttons: {
        "Remove": function() {
            $(this).html(STR_REMOVE);
            $(this).dialog("close");
        },
        "Cancel": function() {
            $(this).html(STR_REMOVE);
            $(this).dialog("close");
        }
    }
});